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:
Justine Tunney 2022-04-14 23:39:48 -07:00
parent 233144b19d
commit 933411ba99
266 changed files with 8761 additions and 4344 deletions

View file

@ -17,10 +17,15 @@
PERFORMANCE OF THIS SOFTWARE.
*/
#include "libc/bits/bits.h"
#include "libc/intrin/kprintf.h"
#include "libc/stdio/append.internal.h"
#include "libc/testlib/ezbench.h"
#include "libc/testlib/testlib.h"
static void PrintMemory(void *p) {
kprintf("%#.*hhs%n", malloc_usable_size(p), p);
}
TEST(vappendf, test) {
char *b = 0;
ASSERT_NE(-1, appendf(&b, "hello "));
@ -137,6 +142,7 @@ TEST(appendr, testExtend_zeroFills) {
TEST(appendr, testAbsent_allocatesNul) {
char *b = 0;
ASSERT_NE(-1, appendr(&b, 0));
ASSERT_BINEQ(u" ", b);
EXPECT_EQ(0, appendz(b).i);
ASSERT_BINEQ(u" ", b);
free(b);