[haiku-commits] r41696 - haiku/branches/developer/bonefish/signals/src/system/kernel

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 24 May 2011 01:15:09 +0200 (CEST)

Author: bonefish
Date: 2011-05-24 01:15:09 +0200 (Tue, 24 May 2011)
New Revision: 41696
Changeset: https://dev.haiku-os.org/changeset/41696

Modified:
   haiku/branches/developer/bonefish/signals/src/system/kernel/signal.cpp
Log:
Removed SIGNAL_FLAG_DONT_RESTART_SYSCALL support for the send_signal_to_*()
team and process group variants. The flag is only used for resume_thread() and
is not needed at team level.


Modified: haiku/branches/developer/bonefish/signals/src/system/kernel/signal.cpp
===================================================================
--- haiku/branches/developer/bonefish/signals/src/system/kernel/signal.cpp      
2011-05-23 22:57:23 UTC (rev 41695)
+++ haiku/branches/developer/bonefish/signals/src/system/kernel/signal.cpp      
2011-05-23 23:15:09 UTC (rev 41696)
@@ -1382,9 +1382,6 @@
        \param flags A bitwise combination of any number of the following:
                - \c B_CHECK_PERMISSION: Check the caller's permission to send 
the
                        target thread the signal.
-               - \c SIGNAL_FLAG_DONT_RESTART_SYSCALL: If the signal interrupts 
the
-                       thread while waiting in a syscall, the syscall shall 
not be
-                       restarted automatically, but fail with \c B_INTERRUPTED 
instead.
                - \c B_DO_NOT_RESCHEDULE: If clear and a higher level thread 
has been
                        woken up, the scheduler will be invoked. If set that 
will not be
                        done explicitly, but rescheduling can still happen, 
e.g. when the
@@ -1452,16 +1449,9 @@
                        // wake up any suspended threads
                        for (Thread* thread = team->thread_list; thread != NULL;
                                        thread = thread->team_next) {
-                               if (thread->state == B_THREAD_SUSPENDED) {
+                               if (thread->state == B_THREAD_SUSPENDED)
                                        scheduler_enqueue_in_run_queue(thread);
 
-                                       // don't restart syscall, if requested
-                                       if ((flags & 
SIGNAL_FLAG_DONT_RESTART_SYSCALL) != 0) {
-                                               atomic_or(&thread->flags,
-                                                       
THREAD_FLAGS_DONT_RESTART_SYSCALL);
-                                       }
-                               }
-
                                // remove any pending stop signals
                                thread->RemovePendingSignals(STOP_SIGNALS);
                        }
@@ -1536,9 +1526,6 @@
        \param flags A bitwise combination of any number of the following:
                - \c B_CHECK_PERMISSION: Check the caller's permission to send 
the
                        target thread the signal.
-               - \c SIGNAL_FLAG_DONT_RESTART_SYSCALL: If the signal interrupts 
the
-                       thread while waiting in a syscall, the syscall shall 
not be
-                       restarted automatically, but fail with \c B_INTERRUPTED 
instead.
                - \c B_DO_NOT_RESCHEDULE: If clear and a higher level thread 
has been
                        woken up, the scheduler will be invoked. If set that 
will not be
                        done explicitly, but rescheduling can still happen, 
e.g. when the
@@ -1576,9 +1563,6 @@
        \param flags A bitwise combination of any number of the following:
                - \c B_CHECK_PERMISSION: Check the caller's permission to send 
the
                        target thread the signal.
-               - \c SIGNAL_FLAG_DONT_RESTART_SYSCALL: If the signal interrupts 
the
-                       thread while waiting in a syscall, the syscall shall 
not be
-                       restarted automatically, but fail with \c B_INTERRUPTED 
instead.
                - \c B_DO_NOT_RESCHEDULE: If clear and a higher level thread 
has been
                        woken up, the scheduler will be invoked. If set that 
will not be
                        done explicitly, but rescheduling can still happen, 
e.g. when the


Other related posts:

  • » [haiku-commits] r41696 - haiku/branches/developer/bonefish/signals/src/system/kernel - ingo_weinhold