OpenBSD CVS

CVS log for src/lib/librthread/rthread_attr.c


[BACK] Up to [local] / src / lib / librthread

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.25 / (download) - annotate - [select for diffs], Wed May 2 14:06:00 2018 UTC (6 years, 1 month ago) by bluhm
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6, OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4, HEAD
Changes since 1.24: +4 -4 lines
Diff to previous 1.24 (colored)

syslog_r() expects a priority, not a faciliy.  Use LOG_ERR for the
pthread_attr_setstack() error message.
OK deraadt@

Revision 1.24 / (download) - annotate - [select for diffs], Thu Apr 12 17:15:34 2018 UTC (6 years, 1 month ago) by deraadt
Branch: MAIN
Changes since 1.23: +48 -4 lines
Diff to previous 1.23 (colored)

(file missed from previous commit)
Implement MAP_STACK option for mmap().  Synchronous faults (pagefault and
syscall) confirm the stack register points at MAP_STACK memory, otherwise
SIGSEGV is delivered. sigaltstack() and pthread_attr_setstack() are modified
to create a MAP_STACK sub-region which satisfies alignment requirements.
Observe that MAP_STACK can only be set/cleared by mmap(), which zeroes the
contents of the region -- there is no mprotect() equivalent operation, so
there is no MAP_STACK-adding gadget.
This opportunistic software-emulation of a stack protection bit makes
stack-pivot operations during ROPchain fragile (kind of like removing a
tool from the toolbox).
original discussion with tedu, uvm work by stefan, testing by mortimer

Revision 1.23 / (download) - annotate - [select for diffs], Tue Sep 5 02:40:54 2017 UTC (6 years, 8 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.22: +7 -1 lines
Diff to previous 1.22 (colored)

Move mutex, condvar, and thread-specific data routes, pthread_once, and
pthread_exit from libpthread to libc, along with low-level bits to
support them.  Major bump to both libc and libpthread.

Requested by libressl team.  Ports testing by naddy@
ok kettenis@

Revision 1.22 / (download) - annotate - [select for diffs], Sat May 7 19:05:22 2016 UTC (8 years ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1, OPENBSD_6_0_BASE, OPENBSD_6_0
Changes since 1.21: +2 -4 lines
Diff to previous 1.21 (colored)

Use a Thread Information Block in both single and multi-threaded programs.
This stores errno, the cancelation flags, and related bits for each thread
and is allocated by ld.so or libc.a.  This is an ABI break from 5.9-stable!

Make libpthread dlopen'able by moving the cancelation wrappers into libc
and doing locking and fork/errno handling via callbacks that libpthread
registers when it first initializes.  'errno' *must* be declared via
<errno.h> now!

Clean up libpthread's symbol exports like libc.

On powerpc, offset the TIB/TCB/TLS data from the register per the ELF spec.

Testing by various, particularly sthen@ and patrick@
ok kettenis@

Revision 1.21 / (download) - annotate - [select for diffs], Sat Apr 2 19:56:53 2016 UTC (8 years, 2 months ago) by guenther
Branch: MAIN
Changes since 1.20: +2 -1 lines
Diff to previous 1.20 (colored)

Wrap <pthread.h> and <pthread_np.h> to eliminate PLT entries for internal
references.  Use _thread_pagesize for the semaphore mmap size instead of
calling getpagesize() each time.

ok beck@

Revision 1.20 / (download) - annotate - [select for diffs], Sat Aug 9 03:29:35 2014 UTC (9 years, 9 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_9_BASE, OPENBSD_5_9, OPENBSD_5_8_BASE, OPENBSD_5_8, OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.19: +2 -2 lines
Diff to previous 1.19 (colored)

Only need <stdint.h> and not <inttypes.h> here

Revision 1.19 / (download) - annotate - [select for diffs], Thu Mar 22 15:26:04 2012 UTC (12 years, 2 months ago) by kurt
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6, OPENBSD_5_5_BASE, OPENBSD_5_5, OPENBSD_5_4_BASE, OPENBSD_5_4, OPENBSD_5_3_BASE, OPENBSD_5_3, OPENBSD_5_2_BASE, OPENBSD_5_2
Changes since 1.18: +1 -8 lines
Diff to previous 1.18 (colored)

Remove pthread_suspend* and related functions. This is part of the
rthreads major library bump from last night. okay kettenis@

Revision 1.18 / (download) - annotate - [select for diffs], Tue Mar 20 04:16:20 2012 UTC (12 years, 2 months ago) by guenther
Branch: MAIN
Changes since 1.17: +1 -7 lines
Diff to previous 1.17 (colored)

Clean up unnecessary prototypes.  Pointed out by brad@

Revision 1.17 / (download) - annotate - [select for diffs], Fri Mar 2 23:11:57 2012 UTC (12 years, 3 months ago) by fgsch
Branch: MAIN
Changes since 1.16: +2 -2 lines
Diff to previous 1.16 (colored)

fix check when setting the contention scope. harmless atm but still wrong.
guenther@ ok.

Revision 1.16 / (download) - annotate - [select for diffs], Sun Feb 19 06:53:58 2012 UTC (12 years, 3 months ago) by guenther
Branch: MAIN
Changes since 1.15: +8 -11 lines
Diff to previous 1.15 (colored)

Fix problems revealed by regress/lib/libpthread/stack/stack.c

Revision 1.15 / (download) - annotate - [select for diffs], Sun Feb 19 02:07:48 2012 UTC (12 years, 3 months ago) by guenther
Branch: MAIN
Changes since 1.14: +4 -2 lines
Diff to previous 1.14 (colored)

Validate in pthread_attr_set{scope,sched{param,policy},inheritsched}()
the requested new value

Revision 1.14 / (download) - annotate - [select for diffs], Sat Feb 18 22:03:21 2012 UTC (12 years, 3 months ago) by guenther
Branch: MAIN
Changes since 1.13: +18 -12 lines
Diff to previous 1.13 (colored)

Fix previous commit: _rthread_init() was static.
Improve consistency of error naming

Revision 1.13 / (download) - annotate - [select for diffs], Sat Feb 18 21:50:27 2012 UTC (12 years, 3 months ago) by guenther
Branch: MAIN
Changes since 1.12: +5 -1 lines
Diff to previous 1.12 (colored)

Before using _thread_pagesize, make sure _rthread_init() has been called

Revision 1.12 / (download) - annotate - [select for diffs], Sat Feb 18 21:12:09 2012 UTC (12 years, 3 months ago) by guenther
Branch: MAIN
Changes since 1.11: +14 -25 lines
Diff to previous 1.11 (colored)

Fix the handling of the stackaddr, stacksize, and guardsize attributes:
don't try to merge values, round the sizes separately, and don't try to
unmap application-supplied stacks.
Copy from uthread the caching of default-sized stacks.
Have pthread_attr_init() and pthread_create() get the default attributes
from staticly allocated pthread_attr_t.
Cache the pagesize in _rthread_init() and provide a macro for rounding to it

based on suggestions from kettenis@ and tedu@, ok kettenis@

Revision 1.11 / (download) - annotate - [select for diffs], Sat Feb 18 07:44:28 2012 UTC (12 years, 3 months ago) by guenther
Branch: MAIN
Changes since 1.10: +4 -1 lines
Diff to previous 1.10 (colored)

Initialize the scope, policy, and inherit members in pthread_attr_init()
so that their pthread_attr_get* don't return bogus values.

issue noted and tested by aja@

Revision 1.10 / (download) - annotate - [select for diffs], Sun Nov 6 11:48:59 2011 UTC (12 years, 6 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_1_BASE, OPENBSD_5_1
Changes since 1.9: +1 -10 lines
Diff to previous 1.9 (colored)

Move <machine/spinlock.h> into rthread.h; strip out unnecessary #includes

Revision 1.9 / (download) - annotate - [select for diffs], Mon Oct 13 05:42:46 2008 UTC (15 years, 7 months ago) by kevlo
Branch: MAIN
CVS Tags: OPENBSD_5_0_BASE, OPENBSD_5_0, OPENBSD_4_9_BASE, OPENBSD_4_9, OPENBSD_4_8_BASE, OPENBSD_4_8, OPENBSD_4_7_BASE, OPENBSD_4_7, OPENBSD_4_6_BASE, OPENBSD_4_6, OPENBSD_4_5_BASE, OPENBSD_4_5
Changes since 1.8: +2 -3 lines
Diff to previous 1.8 (colored)

use calloc() instead of malloc() and memset()

"look good" tedu@

Revision 1.8 / (download) - annotate - [select for diffs], Thu Jan 5 08:15:16 2006 UTC (18 years, 5 months ago) by otto
Branch: MAIN
CVS Tags: OPENBSD_4_4_BASE, OPENBSD_4_4, OPENBSD_4_3_BASE, OPENBSD_4_3, OPENBSD_4_2_BASE, OPENBSD_4_2, OPENBSD_4_1_BASE, OPENBSD_4_1, OPENBSD_4_0_BASE, OPENBSD_4_0, OPENBSD_3_9_BASE, OPENBSD_3_9
Changes since 1.7: +12 -2 lines
Diff to previous 1.7 (colored)

Remove redundant mprotect() calls (we're unmapping the region anyway)
and check user stack for proper alignment.  ok tedu@ marc@

Revision 1.7 / (download) - annotate - [select for diffs], Thu Jan 5 04:06:48 2006 UTC (18 years, 5 months ago) by marc
Branch: MAIN
Changes since 1.6: +8 -1 lines
Diff to previous 1.6 (colored)


add -Wstrict-prototypes -Wmissing-prototypes -Wsign-compare
Minor tweaks to compile with the above, primarily in fixing
the conflicts between semaphore.h and rthread.h
"i like the additional warnings" tedu@

Revision 1.6 / (download) - annotate - [select for diffs], Wed Jan 4 08:48:02 2006 UTC (18 years, 5 months ago) by marc
Branch: MAIN
Changes since 1.5: +9 -4 lines
Diff to previous 1.5 (colored)


allow threads to be created in a detached state
do not allow a join to a detached thread
"it looks good" otto@

Revision 1.5 / (download) - annotate - [select for diffs], Sun Jan 1 19:32:30 2006 UTC (18 years, 5 months ago) by marc
Branch: MAIN
Changes since 1.4: +45 -4 lines
Diff to previous 1.4 (colored)


thread stack handling changes.  Add guard zones and allow stack
size (and guard zone size) to be set using pthread_attr.   Guard
zones are specified in bytes, but implemented in terms of a
page size.

OK Otto@

Revision 1.4 / (download) - annotate - [select for diffs], Sat Dec 31 08:51:20 2005 UTC (18 years, 5 months ago) by otto
Branch: MAIN
Changes since 1.3: +9 -1 lines
Diff to previous 1.3 (colored)

Implement suspend/resume and creation of initially suspended threads.
With this, java seems to be operational.  Also make threads_ready
non-static, which is needed for an upcoming diff.  ok tedu@

Revision 1.3 / (download) - annotate - [select for diffs], Mon Dec 19 06:47:40 2005 UTC (18 years, 5 months ago) by tedu
Branch: MAIN
Changes since 1.2: +2 -2 lines
Diff to previous 1.2 (colored)

update copyright to 2005

Revision 1.2 / (download) - annotate - [select for diffs], Mon Dec 19 06:45:14 2005 UTC (18 years, 5 months ago) by tedu
Branch: MAIN
Changes since 1.1: +36 -2 lines
Diff to previous 1.1 (colored)

add pthread_get/set_concurrency (useless for now)
add pthread_get/set_stack[addr] (info not used yet)

Revision 1.1 / (download) - annotate - [select for diffs], Sat Dec 3 18:16:19 2005 UTC (18 years, 6 months ago) by tedu
Branch: MAIN

add userland thread library.  incomplete, but functional

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.