From: Jon M. <jon...@er...> - 2004-05-19 13:50:52
|
I think I have succeeded in making the port/transport level lock handling somewhat easier to understand, without changing the basic locking policy. New: 1: Callbacks to socket.c (dispatcher/wakeup dipatcher) are now called with and return with the port-lock on. 2: Symmetry: A port or subscription is now always locked/unlocked in the same function. 3: No dual-purpose functions to the reference manager; ref_lock_acquire/ref_unlock_discard etc are now gone. The port lock is still located in the corresponding reference entry, though, and is accessed via easily comprehensible inline functions; port_lock()/port_unlock() etc. 4: Better comments about what the locks protect, and what the lock functions do. I will continue with a similar work on the node locks in a few days, but I would welcome some feedback first. /Jon |