mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-27 14:58:30 +00:00
Make more fixes and improvements
- Remove PAGESIZE constant - Fix realloc() documentation - Fix ttyname_r() error reporting - Make forking more reliable on Windows - Make execvp() a few microseconds faster - Make system() a few microseconds faster - Tighten up the socket-related magic numbers - Loosen restrictions on mmap() offset alignment - Improve GetProgramExecutableName() with getenv("_") - Use mkstemp() as basis for mktemp(), tmpfile(), tmpfd() - Fix flakes in pthread_cancel_test, unix_test, fork_test - Fix recently introduced futex stack overflow regression - Let sockets be passed as stdio to subprocesses on Windows - Improve security of bind() on Windows w/ SO_EXCLUSIVEADDRUSE
This commit is contained in:
parent
140a8a52e5
commit
18bb5888e1
311 changed files with 1239 additions and 2622 deletions
|
@ -86,11 +86,11 @@ static sem_t *sem_open_impl(const char *path, int oflag, unsigned mode,
|
|||
return SEM_FAILED;
|
||||
}
|
||||
npassert(!fstat(fd, &st));
|
||||
if (st.st_size < PAGESIZE && ftruncate(fd, PAGESIZE) == -1) {
|
||||
if (st.st_size < 4096 && ftruncate(fd, 4096) == -1) {
|
||||
npassert(!close(fd));
|
||||
return SEM_FAILED;
|
||||
}
|
||||
sem = mmap(0, PAGESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
|
||||
sem = mmap(0, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
|
||||
if (sem != MAP_FAILED) {
|
||||
atomic_store_explicit(&sem->sem_value, value, memory_order_relaxed);
|
||||
sem->sem_magic = SEM_MAGIC_NAMED;
|
||||
|
@ -272,7 +272,7 @@ int sem_close(sem_t *sem) {
|
|||
}
|
||||
sem_open_unlock();
|
||||
if (unmap) {
|
||||
npassert(!munmap(sem, PAGESIZE));
|
||||
npassert(!munmap(sem, 4096));
|
||||
}
|
||||
if (delete) {
|
||||
unlink(s->path);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue