blob: 3d5147c9f831b942fef729ceece74e98d89ce899 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
This is a list of things that still need to be done:
* Add
pthread_condattr_[gs]etpshared() -- and add warn_references
pthread_mutexattr_[gs]etprioceiling()
pthread_mutexattr_[gs]etprotocol()
pthread_mutexattr_[gs]etpshared()
pthread_mutex_[gs]etprioceiling()
sched_setparam()
sched_setscheduler()
* Add _warn_references to the schedprio stuff
* Quiz jb about pthread_llist_remove.. change name to _thread_llist_remove?
- what pthread_setprio() and pthread_yield() for?
- shouldn't pthread_yield() be marked depreciated?
* Add thread stuff to the other archs in libc/arch/; ie change
some usages of ENTRY to SYSENTRY in some .S files and add
the new macros to their SYS.h.
* Test that thread_init is automatically called on every arch, regardless
of whether the exe is statically linked or not.
* Alter the objective-C compiler to see if it can use threads.
It looks like the easy way is to just define CC='cc -pthread'.
* Find all the static buffers in libc and make them per-thread. This
is not absolutely necessary but incurs no penalty for single-threaded
operation, and makes life easier & safer for when threads are used.
On the other hand, it adds a bit more code bloat when you use threads
and makes openbsd programs non-portable to other OSs with less-nicer
libraries. If we do the bare posix minimum, we promote portable code.
* Look into how netbsd are going with their kernel threads
* Look into how asynchronous I/O can help us. In particular, the
(unimplemented) aio*() functions.
* Update the libc manual pages to describe the posix re-entrant functions.
Although this is actually trivial to do, I have to decide on a
consistent way of adding them - maybe `.Sh THREAD-SAFE FUNCTIONS' ?
Should look into standards to see what they suggest/did..
May also need to document "This is not thread-safe" for some library
functions (yet to be identified).
* Find out where freebsd/netbsd use pread() and pwrite().. i think
its in the database routines mostly. We will need to rip their code.
* Figure out what to do with the configuration system variables (_SC_*)
that are defined by POSIX 1003.1c (at least update sysconf(3))
$OpenBSD: TODO,v 1.6 1999/01/17 23:43:47 d Exp $
|