> > I've been stumbling over this recently, too. AFAIK the channels list is > > thread safe already, if the plugin calls Lock() and Unlock() on the > > Channels object properly. It would be nice if the other lists could > > receive these capabilities too :) Locking is there for cChannels, but it is not safe to store a cChannel * pointer (may be deleted any time) nor a channel number (may be moved or deleted any time). The only safe way currently seems to be storing a channel ID. Although all this is not a practical problem for anyone now, it may well be one day so there should be some thought put into this. I think when there is no time pressure (1.5 series) there should be a clear statement in the documentation of each class which global structures and objects are thread-safe to access and to store and which are main-thread only (OSD, cControl), and mechanisms to track changes. Think of creation, change and deletion of timers and channels, or hot-pluggable devices like those new DVB-T boxes which are plugged in and unplugged at any time. Marcel > > Let's think about this after version 1.4. > > I just _have_ to be increasingly restrictive with changes, or we'll > never get anywhere near a stable 1.4 ;-) > > Klaus