[Trac] [AllemaniACs] #31: Bug in ThreadManager

AllemaniACs trac-notifications at lists.kbsg.rwth-aachen.de
Thu Apr 3 14:47:58 CEST 2008

#31: Bug in ThreadManager
 Reporter:  beck      |        Owner:  AllemaniACs
     Type:  defect    |       Status:  closed     
 Priority:  critical  |    Milestone:             
Component:  Fawkes    |   Resolution:  fixed      
 Keywords:            |  
Changes (by tim):

  * status:  new => closed
  * resolution:  => fixed


 This one was tricky. Problems arose if a thread with
 [doxygen:ThreadProducerAspect] would add or remove threads. This led to a
 deadlock, when the threads structure in [doxygen:FawkesThreadManager] was
 locked for the running hook, and then it had to be locked again for
 adding/removing a thread, boom.

 After implementing about half a dozen different approaches and breaking
 each I finally settled with limiting the kind of threads that can be
 added. From now on a [doxygen:ThreadProducerAspect] may *not* add or
 remove any threads that have the [doxygen:BlockedTimingAspect].
 Constraining this eliminates the need to lock the central structure and
 thus the bug goes away...

Ticket URL: <https://lechuck.informatik.rwth-aachen.de:2342/trac/ticket/31#comment:1>
AllemaniACs <http://robocup.rwth-aachen.de>
AllemaniACs Trac

More information about the fawkes-trac mailing list