BIND 10 #2198: make sure InterprocessSyncLocker is thread safe

BIND 10 Development do-not-reply at isc.org
Mon Oct 22 01:36:39 UTC 2012


#2198: make sure InterprocessSyncLocker is thread safe
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  muks
  jinmei                             |                Status:  closed
                       Type:         |             Milestone:
  defect                             |  Sprint-20121023
                   Priority:         |            Resolution:  fixed
  medium                             |             Sensitive:  0
                  Component:         |           Sub-Project:  Core
  logging                            |  Estimated Difficulty:  5
                   Keywords:         |           Total Hours:  3.85
            Defect Severity:  N/A    |
Feature Depending on Ticket:         |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Changes (by muks):

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


Comment:

 I've had to rewrite all patches on top of `master` as it had moved on, and
 also because the earlier merge+revert got git thinking that the reverted
 state was the latest state of code (and it didn't apply changes in this
 branch). They don't need re-review as the patches are the same, just
 rebased.

 Merged to `master` in commit `e6ba20b0907ab7e861e608a71a35f71ab228e79f`:

 {{{
 * 4e199b2 [2198] Move get methods into unnamed namespace
 * c3a8f64 [2198] Fix library paths to add lib/util/threads/ too (Mac OS
 test failure)
 * 73f49fc [2198] Avoid static destruction fiasco with InterprocessSyncFile
 and logger
 * 59d1e77 [2198] Check for EDEADLK too when using Mutex::tryLock()
 * d7a9543 [2198] Link -lpthread in libb10-threads target
 * 1bb3279 [2198] Don't return anything from thread functions
 * 9a85c00 [2198] Update comment
 * 9de4809 [2198] Test the non-blocking variant of Mutex::Locker
 * 11df86c [2198] Check pthread_mutex_trylock()'s return value
 * 699a941 [2198] Revert include to local
 * a80cd44 [2198] Stop using direct lock methods on Mutex inside
 InterprocessSyncFile
 * 48bfbcc [2198] Fix include filename
 * 13e9951 [2198] Make direct methods on Mutex private
 * f8fb9a0 [2198] Add a block argument to Mutex::Locker's constructor
 * 1b638d6 [2198] Add AlreadyLocked exception to Mutex::Locker
 * 638f92b [2198] Remove dependency on libb10-util in
 src/lib/util/unittests/
 * 1c5c694 [2198] First use a mutex for mutual exclusion among threads,
 then a lock file
 * b09b430 [2198] Add Mutex::tryLock() and make lock methods public
 * 2d01422 [2198] Test that locks work from threads
 * 0a4ef32 [2198] Build threads directory first because . depends on it
 }}}

 Also committed one more fix to `master`:

 {{{
 * ae2e285 [master] Execute run_dbutil.sh using shell
 }}}

 This is necessary because run_dbutil.sh sometimes loses its execute (+x)
 mode bit when regenerated, and tests fail due to it.

 Resolving as fixed. Thank you for the reviews Michal.

-- 
Ticket URL: <https://bind10.isc.org/ticket/2198#comment:27>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list