Age | Commit message (Collapse) | Author |
|
|
|
Locking support for stdio streams with glibc-2.2 libio. EXPERIMENTAL!
* lockfile.c: New file.
* libthreads.map: New file.
* Makefile (SRCS): Add lockfile.c.
[$(VERSIONING) = yes] ($(libname).so.$(hurd-version)): Depend
on $(srcdir)/$(libname).map to get version script into the link.
|
|
|
|
* i386/csw.S: #undef __ELF__ before defining it, since
it is usually predefined.
|
|
|
|
* cprocs.c: Include <assert.h>
|
|
|
|
* cprocs.c (cproc_alloc): Initialize P->wired and P->msg here (code
from cthread_wire).
(cthread_wire): Reduce to just an assert, cthreads always wired.
(chtread_unwire): Abort if called.
|
|
|
|
* cthreads.h (MACRO_BEGIN, MACRO_END): #undef before unconditionally
redefining. Use GCC extension for statement expression with value 0.
|
|
|
|
* cthreads.h (mutex_clear): Change again, to call mutex_init.
|
|
|
|
* cthreads.h (mutex_clear): Change from syntax error to no-op (with
warning avoidance).
|
|
|
|
* cthreads.c (cthread_init): Move cthread_alloc call before
cproc_init call, since cthread_alloc uses malloc, and malloc won't
work between initializing the new stack and switching over to it.
|
|
|
|
|
|
* i386/csw.S (cproc_prepare): Take address of cthread_body as third
arg, so we don't have to deal with PIC magic to find its address
without producing a text reloc.
* cprocs.c (cproc_create): Pass &cthread_body to cproc_prepare.
|
|
* cthreads.c (cthread_fork_prepare): Don't call
malloc_fork_prepare since we are no longer providing our own
malloc in this library.
(cthread_fork_parent): Likewise, for malloc_fork_parent.
(cthread_fork_child): Likewize, for malloc_fork_child.
|
|
* cthreads.c (cthread_body): Wire self before calling user work
function. This way all cthreads will be wired, which the ports
library (and hurd_thread_cancel, etc.) depend on.
|
|
* Makefile (SRCS): Delete malloc.c; libc now has a thread safe
malloc.
(malloc.c): Delete file.
|
|
* cthreads.c (cthread_fork): Delete debugging oddity that crept
into source.
|
|
* i386/csw.S: Define __ELF__ too.
|
|
|
|
|
|
__hurd_threadvar_max):
Make extern.
|
|
Correctly leave space at top of stack for account for GNU per-thread
variables.
|
|
* cprocs.c (cproc_create): Cast CHILD in assignment.
|
|
* i386/csw.S (CALL_MCOUNT): New macro.
(cproc_swtich, cproc_start_wait, cproc_prepare): Use CALL_MCOUNT.
|
|
* i386/csw.S (CALL_MCOUNT): New macro.
(cproc_swtich, cproc_start_wait, cproc_prepare): Use CALL_MCOUNT.
* rwlock.h: Change extern inline protection to use new canonical
method.
* rwlock.c: Rewritten.
|
|
|
|
|
|
|
|
|
|
|
|
"cthread_internals.h": Include removed.
|
|
|
|
technique, now that installhdrdir is available.
|
|
*after* header files have been included.
|
|
_EXTERN_INLINE, which conflicts with machine-sp.h.
|
|
[!lint] (NEVER): Useless macro removed.
|
|
(LCLHDRS): Add rwlock.h.
(install): Depend on $(includedir)/rwlock.h.
($(includedir)/%.h: %.h): New rule.
($(includedir)/cthreads.h): Target removed, obviated by that rule.
|
|
(_EXTERN_INLINE): New macro.
Use it for all the inline defns.
|
|
|
|
|
|
|
|
Use LOG2_MIN_SIZE.
Don't bother allocating a new block if the new size request fits in the old
one and doesn't waste any space.
Only free the old block if we successfully got a new one.
(LOG2_MIN_SIZE): New macro.
|
|
(union header): Only define if !MCHECK.
(HEADER_SIZE, HEADER_NEXT, HEADER_FREE, HEADER_CHECK): New macros.
[MCHECK] (MIN_SIZE): Add correct definition for this case.
(more_memory, malloc, free, realloc):
Use above macros, and add appropiate checks & frobs in MCHECK case.
|
|
|