mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-07 11:48:30 +00:00
Improve synchronization
- Fix bugs in kDos2Errno definition - malloc() should now be thread safe - Fix bug in rollup.com header generator - Fix open(O_APPEND) on the New Technology - Fix select() on the New Technology and test it - Work towards refactoring i/o for thread safety - Socket reads and writes on NT now poll for signals - Work towards i/o completion ports on the New Technology - Make read() and write() intermittently check for signals - Blinkenlights keyboard i/o so much better on NT w/ poll() - You can now poll() files and sockets at the same time on NT - Fix bug in appendr() that manifests with dlmalloc footers off
This commit is contained in:
parent
233144b19d
commit
933411ba99
266 changed files with 8761 additions and 4344 deletions
|
@ -87,14 +87,11 @@ struct Zipos *__zipos_get(void) {
|
|||
STRACE("__zipos_get(%#s)", program_executable_name);
|
||||
} else {
|
||||
munmap(map, size);
|
||||
kprintf("__zipos_get(%#s) → eocd not found%n",
|
||||
program_executable_name);
|
||||
STRACE("__zipos_get(%#s) → eocd not found", program_executable_name);
|
||||
}
|
||||
}
|
||||
close(fd);
|
||||
} else {
|
||||
kprintf("__zipos_get(%#s) → open failed %m%n", program_executable_name);
|
||||
STRACE("__zipos_get(%#s) → open failed %m", program_executable_name);
|
||||
}
|
||||
once = true;
|
||||
|
|
|
@ -124,12 +124,13 @@ static int __zipos_load(struct Zipos *zipos, size_t cf, unsigned flags,
|
|||
h->mem = NULL;
|
||||
}
|
||||
if (h->mem) {
|
||||
if ((fd = IsWindows() ? __reservefd() : dup(2)) != -1) {
|
||||
if ((fd = IsWindows() ? __reservefd(-1) : dup(2)) != -1) {
|
||||
if (__ensurefds(fd) != -1) {
|
||||
h->handle = g_fds.p[fd].handle;
|
||||
g_fds.p[fd].kind = kFdZip;
|
||||
g_fds.p[fd].handle = (intptr_t)h;
|
||||
g_fds.p[fd].flags = flags | O_CLOEXEC;
|
||||
g_fds.p[fd].mode = mode;
|
||||
return fd;
|
||||
}
|
||||
close(fd);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue