[haiku-bugs] Re: [Haiku] #9377: Network Stack Deadlock

  • From: "jackburton" <trac@xxxxxxxxxxxx>
  • Date: Sun, 03 Feb 2013 12:21:09 -0000

#9377: Network Stack Deadlock
----------------------------------------+----------------------------
   Reporter:  jackburton                |      Owner:  axeld
       Type:  bug                       |     Status:  new
   Priority:  normal                    |  Milestone:  R1
  Component:  Network & Internet/Stack  |    Version:  R1/Development
 Resolution:                            |   Keywords:
 Blocked By:                            |   Blocking:
Has a Patch:  0                         |   Platform:  All
----------------------------------------+----------------------------

Comment (by jackburton):

 Would it be possible to unlock the interface list mutex after getting the
 interface in
 get_interface(), before calling CreateDomainDatalinkIfNeeded() ?

 I mean here:

 {{{
 Interface*
 get_interface(net_domain* domain, const char* name)
 {
         MutexLocker locker(sLock);

         Interface* interface = find_interface(name);
         if (interface == NULL)
                 return NULL;

 +       locker.Unlock();

         if (interface->CreateDomainDatalinkIfNeeded(domain) != B_OK)
                 return NULL;

         interface->AcquireReference();
         return interface;
 }
 }}}

 At least, that function doesn't seem to mess with the interfaces list, so
 it would seem to be safe to unlock.

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/9377#comment:4>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: