2002-11-22 Dietmar Maurer <dietmar@ximian.com>
[mono.git] / mono / io-layer / ChangeLog
1 2002-11-22  Dietmar Maurer  <dietmar@ximian.com>
2
3         * threads.c (TlsGetValue): removed unnecessary mutex
4
5 2002-11-20  Dick Porter  <dick@ximian.com>
6
7         * timed-thread.c (_wapi_timed_thread_attach): Attached threads
8         need to store their data structure too.
9
10         * threads.c: Make sure the threading data is initialised wherever
11         it is needed
12
13 2002-11-15  Dick Porter  <dick@ximian.com>
14
15         * timed-thread.c: Removed unneeded parameters in
16         _wapi_timed_thread_attach().
17
18         * threads.c: Renamed AttachThread() to make it not look like
19         external API.  Removed unneeded parameters.
20
21 2002-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22
23         * error.[ch]: added errno_to_WSA (). It displays a warning and return
24         WSASYSCALLFAILURE if there is no error mapping for the given errno,
25
26         * sockets.c: use errno_to_WSA and fixed display of warning for h_errno.
27
28 2002-10-31  Dick Porter  <dick@ximian.com>
29
30         * io.h: 
31         * io.c: Define and use INVALID_FILE_ATTRIBUTES
32
33 2002-10-07  Dick Porter  <dick@ximian.com>
34
35         * timefuncs.c:
36         * daemon.c: Use a more accurate time source for process start and
37         end times.
38
39 2002-10-03  Dick Porter  <dick@ximian.com>
40
41         * daemon.c:
42         * handles.c:
43         * threads.c:  Fixes for freebsd.  Make sure that mutex and condition
44         creation and deletion happen in the process that owns them, when
45         POSIX shared thread objects aren't supported.  This breaks on
46         freebsd, as pthread_t is a pointer to data.
47
48 2002-10-02  Dick Porter  <dick@ximian.com>
49
50         * shared.c: Use mmap() instead of sysv shm for the shared data.
51
52         * wapi-private.h (_WAPI_HANDLE_VERSION): Reset back to 0, for the
53         new system
54
55         * daemon-private.h: 
56         * daemon.c: mmap()ed regions survive fork, so just pass the
57         pointer to _wapi_daemon_main instead of mapping it again.
58
59 2002-10-01  Dick Porter  <dick@ximian.com>
60
61         * timed-thread.c: Kludge for CREATE_SUSPENDED thread creation.
62         Unfortunately libgc uses the same thread suspend technique that I
63         want to, and the two don't mix: libgc will deadlock when it tries
64         to stop the world if a thread has already been suspended by
65         someone else.  Just do the simple suspended create rather than the
66         general purpose thread suspension for now.
67
68         * threads.c: Pass create flags to the timed_thread create call, to
69         implement suspended thread creation.  ResumeThread() partially
70         implemented, to cope with the case where a newly created but
71         suspended thread is launched.
72
73 2002-09-30  Dick Porter  <dick@ximian.com>
74
75         * sockets.c (ioctlsocket): Set non-blocking mode in a better way,
76         with fcntl.
77
78 2002-09-27  Dick Porter  <dick@ximian.com>
79
80         * semaphores.c: Only include semaphore.h if it's present. Patch
81         for BSD from jmmv@hispabsd.org (Julio Merino).
82
83 2002-09-27  Dick Porter  <dick@ximian.com>
84
85         * processes.c: Pass environment and working directory to the
86         daemon when forking.  Don't let argv[0] be duplicated when looking
87         for the program name.  Implement EnumProcessModules (simple
88         version for now, lsof-style later if needed), GetModuleBaseName,
89         {Get,Set}ProcessWorkingSetSize (just faked, because the vm hints
90         aren't available on Linux).
91
92         * process-private.h: Store the process name, and the working set
93         min and max
94
95         * handles.c:
96         * handles-private.h: New functions to store and retrieve an array
97         of strings in the scratch space
98
99         * daemon.c: Don't miss deleting some handles when a client exits
100         (we used to rely on the client doing the final cleanup, but
101         obviously if the client is no longer there the daemon has to do
102         it).
103
104         Process forking now sets the environment and the working
105         directory.
106
107         * io.c: Don't confuse fd 0 with an unassigned handle struct
108
109         * atomic.h: Add a google cache alternative to the msdn URL
110
111 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
112
113         * sockets.c:
114         (_wapi_recvfrom): added ECONNRESET to the switch.
115
116 2002-09-24  Mark Crichton  <crichton@gimp.org>
117
118         * atomic.h: Yea.  On linux, sparc isn't sparc, it's __sparc__.
119         Added to ifdef.
120
121 2002-09-19  Mark Crichton  <crichton@gimp.org>
122
123         * daemon.c, shared.c: Added NEED_LINK_UNLINK for systems that
124         dont have Linux's abstract filesystem for sockets.
125
126 2002-09-19  Mark Crichton  <crichton@gimp.org>
127
128         * atomic.h: Added SPARC atomic asm code.
129         * daemon.c, handles-private.h, handles.c, wapi-private.h:
130         undefined _POSIX_THREAD_PROCESS_SHARED.  This actually exists on
131         Solaris 9, however, the code paths don't seem to work.  More testing
132         on the shared case is *really* needed.
133
134 2002-09-03  Dick Porter  <dick@ximian.com>
135
136         * threads.h: 
137         * threads.c: Removed PosixKillThread(), because it's not in the
138         w32 api
139
140 2002-08-20  Dick Porter  <dick@ximian.com>
141
142         * handles.c (_wapi_handle_scratch_store): Made stored byte lengths
143         multiples of 4 bytes, to keep header structures aligned.  Needed
144         for sparc, at least. (Patch from crichton@gimp.org)
145
146         * handles.c: Removed 'disable_shm' variable (we've defaulted to
147         building with shm enabled for months now)
148
149 2002-08-19  Dick Porter  <dick@ximian.com>
150
151         * daemon.c: Rewrote the poll() loop to use GIOChannels instead,
152         for legacy NeXT-based systems.
153
154 2002-08-12  Dick Porter  <dick@ximian.com>
155
156         * atomic.h: Rename some parameters to avoid c++ keywords (Patch
157         from Joseph Wenninger <kde@jowenn.at>)
158
159 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
160
161         * threads.c: use fast spinlocks by default
162
163 2002-08-02  Dick Porter  <dick@ximian.com>
164
165         * io.c (GetStdHandle): Add a handle reference when returning a
166         duplicate console handle.  This fixes the unref_handle errors in
167         NUnit.
168
169 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
170
171         * threads.c (TLS_PTHREAD_MUTEX): define this because else some
172         tests does not work
173
174 2002-08-01  Dick Porter  <dick@ximian.com>
175
176         * threads.c: Use atomic spinlocks in TLS functions
177
178         * mono-spinlock.h:
179         * Makefile.am: Added mono-spinlock.h
180
181 2002-07-21  Jeffrey Stedfast  <fejj@ximian.com>
182
183         * daemon-messages.c: #include <sys/types.h> and <sys/sockets.h> -
184         these are needed for sendmsg() and also for struct msghdr (at
185         least on Solaris). Solaris still won't build because struct msghdr
186         doesn't have msg_flags, msg_control, or msg_controllen members.
187         (CMSG_SPACE): Define for systems that don't have it.
188         (CMSG_LEN): Same.
189
190 2002-07-20  Dick Porter  <dick@ximian.com>
191
192         * wapi-private.h:
193         * io-private.h:
194         * io.h:
195         * io.c:
196         * handles.c: Implemented pipe handles
197         
198         * handles.c:
199         * daemon.c: Fixed bug in handle closing.
200
201         * shared.c:
202         * daemon.c: Forked processes now close all open file descriptors.
203
204 Fri Jul 19 19:05:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
205
206         * sockets.h, io-layer.h, critical-sections.h: don't include config.h
207         in header files.
208
209 2002-07-19  Martin Baulig  <martin@gnome.org>
210
211         * threads.c (ExitThread): Call exit() if no threads has been
212         created yet.
213
214 2002-07-17  Dick Porter  <dick@ximian.com>
215
216         * daemon-messages.c: Freebsd fixes from Andreas Kohn
217         <andreas.kohn@gmx.net>
218
219 2002-07-15  Dick Porter  <dick@ximian.com>
220
221         * io.c: Removed bogus console_flush() method, that was just cut
222         and pasted from file_flush when I separated the two handle types.
223
224 2002-07-12  Dick Porter  <dick@ximian.com>
225
226         * io.c (convert_from_flags): Fixed misunderstanding wrt fcntl
227         flags.  Fixes bug 27633.
228
229 2002-07-12  Dick Porter  <dick@ximian.com>
230
231         * wapi-private.h:
232         * handles.c:
233         * daemon.c: Use size of sockaddr_un.sun_path from config.h
234
235 2002-07-12  Dick Porter  <dick@ximian.com>
236
237         * processes.c (CreateProcess): Send stdin, stdout and stderr
238         handles if the startup info doesnt specify new ones
239
240         * io.c (GetStdHandle): Return the same handle when the same
241         standard handle is requested
242
243         * handles.c: Pass file descriptors when forking
244
245         * daemon.c: Use supplied file descriptors when forking a new
246         process
247
248         * daemon-messages.h: 
249         * daemon-messages.c: Pass stdin, stdout and stderr file
250         descriptors to the daemon (used when forking)
251
252 2002-07-11  Miguel de Icaza  <miguel@ximian.com>
253
254         * daemon.c (_wapi_daemon_main): Use sizeof
255         (main_socket_address.sun_path) instead of hardcoded 108 value.
256
257         * handles.c (shared_init): Use sizeof
258         (shared_socket_address.sun_path) instead of hardcoded 108 value.
259
260 2002-07-10  Dennis Haney  <davh@davh.dk>
261
262         * shared.c:
263         * handles.c:
264         * daemon.c: Lots of documentation, some added error checking, and
265         code readability improvements.
266
267         * daemon-messages.h: Add the Error request type to improve error
268         checking.
269
270         * daemon-messages.c: Do a bit more error checking on send() and
271         recv(), and log errors with a higher severity level.
272
273 2002-07-04  Dick Porter  <dick@ximian.com>
274
275         * daemon.c (process_process_fork): Fix argument handling, due to
276         buggy understanding of g_strsplit() behaviour.
277
278 2002-07-03  Dick Porter  <dick@ximian.com>
279
280         * threads.h:
281         * threads.c: Implement OpenThread().  Define access-control values
282         for thread handles.
283
284         * wapi.h:
285         * processes.h:
286         * access.h:
287         * Makefile.am: Added access.h, to hold shared access-control
288         definitions
289
290 2002-07-02  Dick Porter  <dick@ximian.com>
291
292         * wapi-private.h (_WAPI_HANDLE_VERSION): New protocol version
293         
294 2002-07-02  Dick Porter  <dick@ximian.com>
295
296         * handles.c (shared_init): Make a second attempt to contact the
297         daemon if the shared memory attach succeeds, but the connect()
298         fails. (This copes with the daemon crashing without cleaning up
299         the shared memory.)
300
301         * Makefile.am: 
302         * daemon-private.h:
303         * daemon.c:
304         * shared.c (_wapi_shm_attach): Don't exec() anything when we fork
305         the daemon, it's now built into the library.
306
307 2002-06-25  Dick Porter  <dick@ximian.com>
308
309         * handles.c:
310         * handles-private.h:
311         * daemon-messages.h:
312         * daemon.c: Process forking and handle data management
313
314         * processes.h:
315         * process-private.h:
316         * processes.c: Process forking and other support functions
317
318 2002-06-25  Dick Porter  <dick@ximian.com>
319
320         * versioninfo.h: PE resource decoding
321
322         * unicode.c (_wapi_unicode_to_utf8): g_utf16_to_utf8 doesnt need
323         to be told the string length
324
325         * io.c: Removed the ACTUALLY_DO_UNICODE option.  Fixed some leaks.
326         Moved _wapi_time_t_to_filetime and the WapiFileTime typedef to
327         timefuncs.c
328
329 2002-06-12  Dick Porter  <dick@ximian.com>
330
331         * daemon.c: 
332         * daemon-messages.c: Handle SIGPIPE in a non-stupid way in the
333         daemon, if MSG_NOSIGNAL isn't available.  Thanks to Jaroslaw
334         Kowalski <jarek@atm.com.pl> for pointing out the bogosity.
335
336 2002-06-10  Jaroslaw Kowalski <jarek@atm.com.pl>
337
338         * sockets.c, daemon-messages.c: Prevent SIGPIPE from being raised
339         when writing to a closed socket.
340
341 2002-06-08  Jeffrey Stedfast  <fejj@ximian.com>
342
343         * mono-mutex.c (mono_once): New convenience function for my
344         previous fix.
345
346         * handles.c:
347         * error.c: 
348         * critical-sections.c: 
349         * threads.c: 
350         * sockets.c: 
351         * semaphores.c: 
352         * processes.c: 
353         * mutexes.c: 
354         * io.c: 
355         * events.c: 
356         * atomic.c: Use mono_once() rather than pthread_once().
357
358 2002-06-06  Jeffrey Stedfast  <fejj@ximian.com>
359
360         * handles.c (_wapi_handle_new): pthread_once() is not atomic, so
361         if multiple threads all try to call _wapi_handle_new() before the
362         shared data has been initialized, it is possible that we could get
363         into a condition where shared_init() is being executed and later
364         threads will pass by pthread_once() due to the fact that it has
365         already been called and so therefor will attempt to use the shared
366         data before it has been completely initialized. If we instead use
367         a standard mutex locking mechanism around shared_init(), we can
368         avoid the situation entirely. By wrapping the mutex locking in a
369         check to see if we've already initialized the data, we can even
370         avoid wasting resources by having to lock/unlock the mutex in any
371         later calls (the only time we'd have to worry about
372         locking/unlocking is the initial race to call shared_init() at
373         startup).
374
375 Sat Jun 1 13:27:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
376
377         * atomic.h: inline asm fixes from Dennis Haney (davh@davh.dk).
378
379 Fri May 31 16:21:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
380
381         * daemon.c, handles.c: rename "sun" local var since it's apparently
382         a #define on Solaris.
383
384 Fri May 31 15:40:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
385
386         * daemon-messages.c: work-around MSG_NOSIGNAL missing on some
387         platforms.
388
389 2002-05-15  Dick Porter  <dick@ximian.com>
390
391         * wait.c: Fix a deadlock in WaitForMultipleObjects
392
393 2002-05-14  Dick Porter  <dick@ximian.com>
394
395         * io.c: Fix a cut&paste error, found by
396         Jaroslaw Kowalski <jarek@atm.com.pl>
397
398 2002-05-10  Dan Lewis  <dihlewis@yahoo.co.uk>
399
400         * io.c: Nasty typo.
401
402 2002-05-09  Dick Porter  <dick@ximian.com>
403
404         * threads.c: 
405         * semaphores.c: 
406         * processes.c: 
407         * mutexes.c: 
408         * handles-private.h: 
409         * events.c: 
410         * Makefile.am: Remove now-unused file wait-private.h
411
412 2002-05-08  Dick Porter  <dick@ximian.com>
413
414         * shared.c: Better error messages, and report when daemon
415         connection fails rather than blocking forever.  Do some more
416         shared memory sanity checking.
417
418         * handles.c: Better error messages when connecting to shared
419         memory and the handle daemon.  Fall back to non-shared handles if
420         an error occurs.  Set the default back to 'shared handles'.  Fix a
421         crashing bug in scratch space allocation that mangled the block
422         headers.
423
424 2002-05-07  Miguel de Icaza  <miguel@ximian.com>
425
426         * handles.c (shared_init): Disable SHM for now, people have too
427         many problems with this, and the diagnostics are not helping.
428
429 2002-05-06  Dan Lewis  <dihlewis@yahoo.co.uk>
430
431         * io.c: CreateFile sets win32 last error.
432
433 2002-05-05  Dick Porter  <dick@ximian.com>
434
435         * wapi-private.h: 
436         * handles-private.h:
437         * io.c: 
438         * io-private.h:
439         * mutexes.c: 
440         * mutex-private.h: 
441         * processes.c: 
442         * process-private.h: 
443         * semaphores.c: 
444         * semaphore-private.h: 
445         * sockets.c: 
446         * socket-private.h: 
447         * events.c: 
448         * event-private.h: Simplify the WapiHandleOps struct: take out all
449         the file-specific entries, leaving just the items that operate on
450         handles themselves.  Split the close operation into shared and
451         private parts: shared close is called by the daemon.
452
453         * handles.c: As above, but also pass handle allocation, ref and
454         unref operations to the daemon.  Populate the handle_ops array at
455         compile time, because the daemon needs to call ops on handles too.
456         Don't bother to track open handle counts any more, the daemon does
457         that.
458         
459         * threads.c: 
460         * thread-private.h: As above, but also make the thread data
461         handle-private.
462
463         * shared.c: Fork a handle daemon if the calling process created
464         the shared memory segment.
465
466         * daemon.c:
467         * daemon-messages.c:
468         * daemon-messages.h:
469         * Makefile.am: Build a daemon to manage handle allocation and
470         destruction without needing to lock the shared memory
471
472 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
473
474         * atomic.c: Changed to use a normal mutex rather than a spinlock
475         since a lot of platforms seem to not have them :\
476
477 2002-04-30  Dick Porter  <dick@ximian.com>
478
479         * Completely rewrote the handle waiting code: removed the helper
480         thread and its attendant complexity.  All handle waiting is now
481         abstracted into the WaitForSingleObject() and
482         WaitForMultipleObjects() functions.
483
484         * Implemented inter-process sharing of handles using sysv shared
485         memory.  This makes handles even more opaque, with a handle now
486         just an index into an array.
487         
488 2002-04-25  Dan Lewis  <dihlewis@yahoo.co.uk>
489
490         * io.c: unitialized pointer in GetCurrentDirectory.
491
492 Sat Apr 20 13:37:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
493
494         * threads.c: destroy the mutex at thread destruction
495         (if/when thread destruction code will be actually called).
496         When protecting a tls data pointer from the gc, use also the 
497         thread id in the key.
498         
499 Wed Apr 17 18:36:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
500
501         * timed-thread.c: avoid race condition when setting the thread to
502         detached.
503
504 2002-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
505
506         * jit.h: to more #include lines to avoid breaking compilation
507         under windows when upgrading mingw and w32api to version
508         1.3 (thanks Dick!).
509
510 2002-04-16  Dick Porter  <dick@ximian.com>
511
512         * atomic.h: Explanatory comment about lack of 80386 support
513
514 2002-04-15  Dick Porter  <dick@ximian.com>
515
516         * atomic.h: use xaddl for InterlockedIncrement() and
517         InterlockedDecrement().  Use cmpxchgl in a loop for
518         InterlockedExchange() and InterlockedExchangePointer().
519
520 Mon Apr 15 13:31:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
521
522         * unicode.c: fix unicode_len() to not access uninitialized memory
523         (and updated to conform to mono code style).
524
525 Fri Mar 29 17:15:11 CET 2002 Paolo Molaro <lupus@ximian.com>
526
527         * io.c: EEXISTS is ignored for directory creation.
528         * mono-mutex.h: remove silly "pragma }" that emacs users insert
529         because they use a broken editor:-)
530
531 2002-03-28  Dick Porter  <dick@ximian.com>
532
533         * sockets.h: 
534         * sockets.c: 
535         * io.c: 
536         * handles.h: 
537         * handles.c: Warning cleanups
538
539 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
540
541         * unicode.h, unicode.c: changed to gunichar2
542         * io.h, io.c: changed strings to gunichar2*, added
543         SetFileAttributes(), GetCurrentDirectory(), SetCurrentDirectory(),
544         some fixes to FindFirstFile() and friends.
545
546 2002-03-26  Dick Porter  <dick@ximian.com>
547
548         * types.h: Implement the large integer struct
549
550         * timefuncs.h:
551         * timefuncs.c: Dummy functions that don't yet implement
552         QueryPerformanceCounter() and QueryPerformanceFrequency()
553
554         * threads.h:
555         * threads.c: Implement SleepEx()
556
557         * system.h:
558         * system.c: Beginnings of GetSystemInfo()
559
560         * mono-mutex.c (pthread_mutex_timedlock): Fix a ms/ns conversion
561         thinko
562
563         * context.h:
564         * context.c: Dummy function that doesnt yet implement
565         GetThreadContext()
566
567         * atomic.h: 
568         * atomic.c: Interlocked functions
569
570 Mon Mar 25 13:01:40 CET 2002 Paolo Molaro <lupus@ximian.com>
571
572         * threads.c: use a gc-safe hash table to store tls pointers.
573
574 2002-03-22  Dick Porter  <dick@ximian.com>
575
576         * threads.c: Fix a race condition where a thread can start and
577         exit before the handle has been properly initialised (no reason
578         why the handle couldn't be initialised beforehand, so do so)
579
580         Fix a ms to ns conversion magnitude thinko.
581
582 2002-03-21  Dick Porter  <dick@ximian.com>
583
584         * semaphores.c: Fix a problem when waiting for one or more
585         semaphores, and another semaphore is Released (all waiting
586         semaphores assumed they were signalled)
587
588 2002-03-29  Dan Lewis <dihlewis@yahoo.co.uk>
589
590         * io.h, io.c, uglify.h: added MoveFile, CopyFile, CreateDirectory,
591         RemoveDirectory, GetFileAttributes, GetFileAttributesEx
592
593 2002-03-19  Dietmar Maurer  <dietmar@ximian.com>
594
595         * threads.c (Sleep): bug fix: 1ms == 1000000ns
596
597 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
598
599         * io.h, io.c, events.c, mutexes.c, semaphores.c, sockets.c,
600         threads.c, io.c: added flush method to handles.
601
602         * io.c: FlushFileBuffers() and FindFirstFile() functions.
603
604 Thu Mar 7 17:21:52 CET 2002 Paolo Molaro <lupus@ximian.com>
605
606         * threads.c, timed-thread.c, wait.c: Boehm-GC anable.
607
608 2002-02-20  Dick Porter  <dick@ximian.com>
609
610         * io-layer.h: Always build without cygwin support on windows
611
612 Mon Feb 18 15:50:59 CET 2002 Paolo Molaro <lupus@ximian.com>
613
614         * sockets.c: #undef DEBUG.
615
616 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
617
618         * io-layer.h: conditionally include sys/filio.h and sys/sockio.h
619         for FIONBIO, FIONREAD, and SIOCATMARK.
620
621 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
622
623         * sockets.c: conditionally include sys/filio.h and sys/sockio.h
624         for FIONBIO, FIONREAD, and SIOCATMARK.
625
626 2002-02-13  Dick Porter  <dick@ximian.com>
627
628         * sockets.c: Implement shutdown and select
629
630 2002-02-13  Jeffrey Stedfast  <fejj@ximian.com>
631
632         * mono-mutex.[c,h]: New source files that thinly wrap all pthread
633         functions that take pthread_mutex_t and/or pthread_mutexattr_t
634         arguments for the sake of portability. Implements recursive
635         mutexes and pthread_mutex_timedlock.
636
637         * critical-sections.c:
638         * events.c:
639         * handles.c:
640         * mutexes.c:
641         * semaphores.c:
642         * threads.c:
643         * timed-thread.c:
644         * wait.c: Use the mono-mutex wrapper portability functions/macros.
645
646         * pthread-compat.[c,h]: Replaced by mono-mutex.[c,h]
647
648 2002-01-23  Dick Porter  <dick@ximian.com>
649
650         * sockets.c: Networking support, mostly wrapping BSD socket APIs
651         with handle code, and translating errno into w32 error codes.
652
653         * macros.h: Some w32 macros used with the socket support
654
655         * error.c: Implemented GetLastError() and SetLastError()
656
657         * Makefile.am: Added sockets, with kludge to override some symbols
658
659 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
660
661         * unicode.c (_wapi_unicode_to_utf8): byteswap UTF16 strings before
662         passing them to iconv
663         (_wapi_unicode_to_utf8): only swap bytes on LE systems, remove bug
664         from previous commit.
665
666 2001-12-11  Dick Porter  <dick@ximian.com>
667
668         * io.c: Implement DeleteFile(), GetFileTime(), SetFileTime() and
669         FileTimeToSystemTime().
670
671         * unicode.c (unicode_len): Nasty way of finding length of unicode
672         string with embedded NULLs (counts until two NULLs together).
673
674         * mutexes.c (mutex_close): 
675         * events.c (event_close): Release the internal pthreads resources
676
677 2001-11-26  Dick Porter  <dick@ximian.com>
678
679         * critical-sections.c:
680         * events.c:
681         * handles.c:
682         * io.c:
683         * mutexes.c:
684         * semaphores.c:
685         * threads.c:
686         * timed-thread.c:
687         * wait.c: turn off DEBUG messages
688
689 2001-11-22  Dick Porter  <dick@ximian.com>
690
691         * handles.c (SignalObjectAndWait): Implement
692
693         * wait.c (WaitForSingleObject): Fix case where timeout == 0
694
695         * threads.c:
696         * semaphores.c:
697         * mutexes.c:
698         * io.c:
699         * events.c: Support for SignalObjectAndWait
700         
701 2001-11-21  Dick Porter  <dick@ximian.com>
702
703         * events.c:
704         * handles.c:
705         * mutexes.c:
706         * semaphores.c:
707         * threads.c:
708         * wait.c: Reliable method of returning which handle was signalled
709         on return from WaitForMultipleObjects().
710
711 2001-11-21  Dick Porter  <dick@ximian.com>
712
713         * events.c: Implement events
714
715 2001-11-15  Dick Porter  <dick@ximian.com>
716
717         * mutexes.c: Implement mutexes
718
719         * threads.c: 
720         * semaphores.c: 
721         * misc.c: Factor out some common code
722
723 2001-11-13  Dick Porter  <dick@ximian.com>
724
725         * threads.c: Implement TLS.  Implement GetCurrentThreadId(), and
726         GetCurrentThread() by maintaining a hash of thread handles.
727
728         * threads.h: Define thread and process creation flags
729
730 2001-11-12  Dick Porter  <dick@ximian.com>
731
732         * critical-sections.c: Implement critical sections
733
734 2001-11-12  Dick Porter  <dick@ximian.com>
735
736         * semaphores.c: Implement semaphores
737
738         * wait.c (wait_for_item): Maintain a wait count rather than count
739         signalled booleans.
740
741         * threads.c (thread_wait_multiple): Don't lock the wait item, that
742         will block other wait threads
743
744 2001-11-11  Dick Porter  <dick@ximian.com>
745
746         * Makefile.am: Rename some automake variables
747         (from Nick Drochak <ndrochak@gol.com>)
748
749 2001-11-10  Dick Porter  <dick@ximian.com>
750
751         * Makefile.am (libwapiincludedir): Fix include destination
752
753         * .cvsignore: Ignore generated files
754
755 2001-11-10  Dietmar Maurer  <dietmar@ximian.com>
756
757         * pthread-compat.c: added some include files to make it compile on
758         linux.
759
760 2001-11-08  Dick Porter  <dick@ximian.com>
761
762         * Initial checkin.
763
764         This is a library emulating the win32 threading and IO API.
765
766