scalls.c (1219:f89f56c2d9ac) | scalls.c (1885:7bbaa5935f99) |
---|---|
1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the | 1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the |
5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. | 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. |
8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. --- 355 unchanged lines hidden (view full) --- 371 } \ 372 if (self->ul_sigsuspend) { \ 373 self->ul_sigsuspend = 0; \ 374 restore_signals(self); \ 375 } \ 376} 377 378/* | 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. --- 355 unchanged lines hidden (view full) --- 370 } \ 371 if (self->ul_sigsuspend) { \ 372 self->ul_sigsuspend = 0; \ 373 restore_signals(self); \ 374 } \ 375} 376 377/* |
378 * Externally-callable cancellation prologue and epilogue 379 * functions, for cancellation points outside of libc. 380 */ 381void 382_cancel_prologue(void) 383{ 384 ulwp_t *self = curthread; 385 386 self->ul_cancel_prologue = (self->ul_vfork | self->ul_nocancel); 387 if (self->ul_cancel_prologue == 0) { 388 self->ul_save_async = self->ul_cancel_async; 389 if (!self->ul_cancel_disabled) { 390 self->ul_cancel_async = 1; 391 if (self->ul_cancel_pending) 392 _pthread_exit(PTHREAD_CANCELED); 393 } 394 self->ul_sp = stkptr(); 395 } 396} 397 398void 399_cancel_epilogue(void) 400{ 401 ulwp_t *self = curthread; 402 403 if (self->ul_cancel_prologue == 0) { 404 self->ul_sp = 0; 405 self->ul_cancel_async = self->ul_save_async; 406 } 407} 408 409/* |
|
379 * Called from _thrp_join() (thr_join() is a cancellation point) 380 */ 381int 382lwp_wait(thread_t tid, thread_t *found) 383{ 384 int error; 385 386 PROLOGUE --- 529 unchanged lines hidden --- | 410 * Called from _thrp_join() (thr_join() is a cancellation point) 411 */ 412int 413lwp_wait(thread_t tid, thread_t *found) 414{ 415 int error; 416 417 PROLOGUE --- 529 unchanged lines hidden --- |