mcdermj / buster

Buster D-Star Reflector Client for MacOS X
Other
15 stars 7 forks source link

Persistent drivers #2

Closed mcdermj closed 8 years ago

mcdermj commented 8 years ago

The idea of having throwaway drivers didn’t work out as well as I had hoped. There were too many things going on in flight to make it really effective. The Data Engine now instantiates a copy of every driver at init time and keeps them around. These drivers bind and hold on to their sockets, only changing where they’re connected as they switch to different reflectors. This should prevent some problems with trying to bind to an already bound socket because of timing issues. This should also make some of the persistent data more efficient.

Also implemented a serial queue to handle link/unlink requests. This way you can’t have them crossing over in flight. The queue is created on the Data Engine and fed to the link drivers.

Fixes #1