PERFORCE change 107070 for review
John Birrell
jb at FreeBSD.org
Sun Oct 1 21:58:49 PDT 2006
http://perforce.freebsd.org/chv.cgi?CH=107070
Change 107070 by jb at jb_freebsd7 on 2006/10/02 04:57:57
Catch up with davidxu's libthr changes. This file is a copy of
thr_create.c. The name change is required to avoid a clash with
the syscall of the same name when libthr code is built into libc.
Affected files ...
.. //depot/projects/dtrace/src/lib/libthr/thread/pthread_create.c#2 edit
Differences ...
==== //depot/projects/dtrace/src/lib/libthr/thread/pthread_create.c#2 (text+ko) ====
@@ -24,11 +24,12 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/lib/libthr/thread/thr_create.c,v 1.32 2006/07/13 22:45:19 davidxu Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_create.c,v 1.34 2006/09/21 04:21:30 davidxu Exp $
*/
#include "namespace.h"
#include <sys/types.h>
+#include <sys/rtprio.h>
#include <sys/signalvar.h>
#include <errno.h>
#include <stdlib.h>
@@ -50,7 +51,8 @@
{
struct pthread *curthread, *new_thread;
struct thr_param param;
- struct thr_sched_param sched_param;
+ struct sched_param sched_param;
+ struct rtprio rtp;
int ret = 0, locked, create_suspended;
sigset_t set, oset;
@@ -107,6 +109,7 @@
PTHREAD_CANCEL_DEFERRED;
/* Initialize the mutex queue: */
TAILQ_INIT(&new_thread->mutexq);
+ TAILQ_INIT(&new_thread->pp_mutexq);
/* Initialise hooks in the thread structure: */
if (new_thread->attr.suspend == THR_CREATE_SUSPENDED) {
@@ -143,12 +146,12 @@
if (new_thread->attr.flags & PTHREAD_SCOPE_SYSTEM)
param.flags |= THR_SYSTEM_SCOPE;
if (new_thread->attr.sched_inherit == PTHREAD_INHERIT_SCHED)
- param.sched_param = NULL;
+ param.rtp = NULL;
else {
- param.sched_param = &sched_param;
- param.sched_param_size = sizeof(sched_param);
- sched_param.policy = new_thread->attr.sched_policy;
- sched_param.param.sched_priority = new_thread->attr.prio;
+ sched_param.sched_priority = new_thread->attr.prio;
+ _schedparam_to_rtp(new_thread->attr.sched_policy,
+ &sched_param, &rtp);
+ param.rtp = &rtp;
}
/* Schedule the new thread. */
More information about the p4-projects
mailing list