    void signalUpdated(const cabana::Signal *sig);
    void msgUpdated(MessageId id);
    void msgRemoved(MessageId id);
    void DBCFileChanged();
  
  private:
    std::map<int, std::shared_ptr<DBCFile>> dbc_files;
  };
  
 
</s> remove   const QList<uint8_t>& mask(const MessageId &id);
 </s> add   const std::vector<uint8_t>& mask(const MessageId &id); </s> remove   const QList<uint8_t> mask;
 </s> add 
  void maskUpdated();
    void signalUpdated(const cabana::Signal *sig);
    void msgUpdated(MessageId id);
    void msgRemoved(MessageId id);
    void DBCFileChanged();
  void maskUpdated();
  
  private:
    std::map<int, std::shared_ptr<DBCFile>> dbc_files;
  };
  
keep keep keep add keep keep keep keep keep
 cabana: fixed the multi-threading issues of AbstractStream (#28590)

* fix multi-threading issues

* protect masks with mutex 
tools/cabana/dbc/dbcmanager.h