haiku/headers
Ingo Weinhold e01cebeb0a * cancel_timer():
- If the hook of the timer we're cancelling is currently being
    executed, we do now wait till it is finished. This is how the BeBook
    specifies the function to behave.
  - Periodic timers would not be cancelled, if their hook was being
    invoked at the same time, since they weren't in the queue during
    that time.
  - Since we know the CPU on which the timer is scheduled (timer::cpu),
    we don't have to look through any other CPU queue to find it.
  - Fixed the return value. It should report whether the timer had
    already fired, and was not always doing that.
* Added private add_timer() flag B_TIMER_ACQUIRE_THREAD_LOCK. It causes
  the thread spinlock to be acquired before the event hook is called.
  cancel_timer() doesn't wait for timers with the flag set. Instead we
  check in the timer interrupt function after acquiring the thread
  spinlock whether the timer was cancelled in the meantime. Calling
  cancel_timer() with the thread spinlock being held does thus avoid any
  race conditions and won't deadlock, if the event hook needs to acquire
  the thread spinlock, too. This feature proves handy for some kernel
  internal needs.
* The scheduler uses a B_TIMER_ACQUIRE_THREAD_LOCK timer now and
  cancel_timer() instead of the no longer needed
  _local_timer_cancel_event().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25098 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 15:29:22 +00:00
..
build Second stab at reorganizing standard/gcc headers. This time it not only 2008-03-16 17:21:37 +00:00
compatibility/bsd This header is no longer necessary, since Ingo added the BSD timer macros 2008-04-13 02:28:43 +00:00
cpp GCC 4 fix. 2005-12-11 16:22:51 +00:00
glibc Prevent redefinition of _IO_MTSAFE_IO. It is defined when building the 2008-03-22 15:26:55 +00:00
gnu adding gnu/termcap.h : is a copy of src/libs/termcap/termcap.h 2004-06-01 12:38:47 +00:00
legacy/network setsockopt and getsockopt use int as others functions 2006-06-23 14:19:11 +00:00
libs Integrate the USBKit into libdevice and make it public. I left the USBKit.h 2008-04-07 19:24:16 +00:00
os - Implement RemoteDevice::GetFriendlyName() in kit and handle the required reply in the server. 2008-04-19 16:53:06 +00:00
posix * Replaced destructor with destructorFunc to please python - it's not a reserved 2008-04-20 21:20:07 +00:00
private * cancel_timer(): 2008-04-22 15:29:22 +00:00
tools Fixed the build of the cppunit stuff; if you are using IMPORT/EXPORT you should 2004-05-05 16:19:03 +00:00