|
From: <sv...@va...> - 2013-09-04 07:31:18
|
sewardj 2013-09-04 07:31:10 +0000 (Wed, 04 Sep 2013)
New Revision: 13530
Log:
PRE(workq_ops): handle KI_WQOPS_QUEUE_REQTHREADS without complaining.
Modified files:
trunk/coregrind/m_syswrap/syswrap-darwin.c
Modified: trunk/coregrind/m_syswrap/syswrap-darwin.c (+7 -3)
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-darwin.c 2013-09-04 06:17:44 +00:00 (rev 13529)
+++ trunk/coregrind/m_syswrap/syswrap-darwin.c 2013-09-04 07:31:10 +00:00 (rev 13530)
@@ -1517,8 +1517,13 @@
// GrP fixme may block?
break;
case VKI_WQOPS_QUEUE_NEWSPISUPP:
- break; // JRS don't think we need to do anything here
-
+ // JRS don't think we need to do anything here -- this just checks
+ // whether some newer functionality is supported
+ break;
+ case VKI_WQOPS_QUEUE_REQTHREADS:
+ // JRS uh, looks like it queues up a bunch of threads, or some such?
+ *flags |= SfMayBlock; // the kernel sources take a spinlock, so play safe
+ break;
case VKI_WQOPS_THREAD_RETURN: {
// The interesting case. The kernel will do one of two things:
// 1. Return normally. We continue; libc proceeds to stop the thread.
@@ -1535,7 +1540,6 @@
*flags |= SfMayBlock; // GrP fixme true?
break;
}
-
default:
VG_(printf)("UNKNOWN workq_ops option %ld\n", ARG1);
break;
|