diff options
author | Roger Hardiman <roger@FreeBSD.org> | 2001-01-03 14:02:24 +0000 |
---|---|---|
committer | Roger Hardiman <roger@FreeBSD.org> | 2001-01-03 14:02:24 +0000 |
commit | 654fad2b7d721026f2fdf3f0d5fc8536f0d36390 (patch) | |
tree | f7d56cdaa9f3b5986c34dc652d86fdb99d565033 /net/opal3/files | |
parent | 35d965949e495ca74e36a4c40e7e9056f0f87aef (diff) | |
download | ports-654fad2b7d721026f2fdf3f0d5fc8536f0d36390.tar.gz ports-654fad2b7d721026f2fdf3f0d5fc8536f0d36390.zip |
Notes
Diffstat (limited to 'net/opal3/files')
-rw-r--r-- | net/opal3/files/patch-aa | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/net/opal3/files/patch-aa b/net/opal3/files/patch-aa deleted file mode 100644 index cf262107575c..000000000000 --- a/net/opal3/files/patch-aa +++ /dev/null @@ -1,29 +0,0 @@ -*** ../pwlib/src/ptlib/unix/tlibthrd.cxx.orig Thu Nov 16 11:14:48 2000 ---- ../pwlib/src/ptlib/unix/tlibthrd.cxx Thu Nov 16 11:15:21 2000 -*************** void PThread::PX_NewThread(BOOL startSus -*** 386,391 **** ---- 386,409 ---- - // pthread_attr_t threadAttr; - // pthread_attr_init(&threadAttr); - PAssertOS(pthread_create(&PX_threadId, NULL, PX_ThreadStart, this) == 0); -+ -+ #if defined(P_FREEBSD) -+ // There is a potential race condition here which shows up with FreeBSD 4.2 -+ // and later, but really applies to all pthread libraries. -+ // If a thread is started in suspend mode, we need to make sure -+ // the thread (PX_ThreadStart) has had a chance to execute and block on the -+ // sigwait() (blocking on the Resume Signal) before this function returns. -+ // Otherwise the main program may issue a Resume Signal on the thread -+ // by calling PThread::Resume() before the thread is ready for it. -+ // If that happens the program will abort with an unhandled signal error. -+ // A workaround (not 100% guaranteed) is to yield here, which gives -+ // the newly created thread (PX_ThreadStart) a chance to execute. -+ -+ if (startSuspended) { -+ sched_yield(); -+ } -+ #endif -+ - } - - |