2002-04-30 Dick Porter <dick@ximian.com>
[mono.git] / mono / io-layer / ChangeLog
1 2002-04-30  Dick Porter  <dick@ximian.com>
2
3         * Completely rewrote the handle waiting code: removed the helper
4         thread and its attendant complexity.  All handle waiting is now
5         abstracted into the WaitForSingleObject() and
6         WaitForMultipleObjects() functions.
7
8         * Implemented inter-process sharing of handles using sysv shared
9         memory.  This makes handles even more opaque, with a handle now
10         just an index into an array.
11         
12 2002-04-25  Dan Lewis  <dihlewis@yahoo.co.uk>
13
14         * io.c: unitialized pointer in GetCurrentDirectory.
15
16 Sat Apr 20 13:37:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17
18         * threads.c: destroy the mutex at thread destruction
19         (if/when thread destruction code will be actually called).
20         When protecting a tls data pointer from the gc, use also the 
21         thread id in the key.
22         
23 Wed Apr 17 18:36:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24
25         * timed-thread.c: avoid race condition when setting the thread to
26         detached.
27
28 2002-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29
30         * jit.h: to more #include lines to avoid breaking compilation
31         under windows when upgrading mingw and w32api to version
32         1.3 (thanks Dick!).
33
34 2002-04-16  Dick Porter  <dick@ximian.com>
35
36         * atomic.h: Explanatory comment about lack of 80386 support
37
38 2002-04-15  Dick Porter  <dick@ximian.com>
39
40         * atomic.h: use xaddl for InterlockedIncrement() and
41         InterlockedDecrement().  Use cmpxchgl in a loop for
42         InterlockedExchange() and InterlockedExchangePointer().
43
44 Mon Apr 15 13:31:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
45
46         * unicode.c: fix unicode_len() to not access uninitialized memory
47         (and updated to conform to mono code style).
48
49 Fri Mar 29 17:15:11 CET 2002 Paolo Molaro <lupus@ximian.com>
50
51         * io.c: EEXISTS is ignored for directory creation.
52         * mono-mutex.h: remove silly "pragma }" that emacs users insert
53         because they use a broken editor:-)
54
55 2002-03-28  Dick Porter  <dick@ximian.com>
56
57         * sockets.h: 
58         * sockets.c: 
59         * io.c: 
60         * handles.h: 
61         * handles.c: Warning cleanups
62
63 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
64
65         * unicode.h, unicode.c: changed to gunichar2
66         * io.h, io.c: changed strings to gunichar2*, added
67         SetFileAttributes(), GetCurrentDirectory(), SetCurrentDirectory(),
68         some fixes to FindFirstFile() and friends.
69
70 2002-03-26  Dick Porter  <dick@ximian.com>
71
72         * types.h: Implement the large integer struct
73
74         * timefuncs.h:
75         * timefuncs.c: Dummy functions that don't yet implement
76         QueryPerformanceCounter() and QueryPerformanceFrequency()
77
78         * threads.h:
79         * threads.c: Implement SleepEx()
80
81         * system.h:
82         * system.c: Beginnings of GetSystemInfo()
83
84         * mono-mutex.c (pthread_mutex_timedlock): Fix a ms/ns conversion
85         thinko
86
87         * context.h:
88         * context.c: Dummy function that doesnt yet implement
89         GetThreadContext()
90
91         * atomic.h: 
92         * atomic.c: Interlocked functions
93
94 Mon Mar 25 13:01:40 CET 2002 Paolo Molaro <lupus@ximian.com>
95
96         * threads.c: use a gc-safe hash table to store tls pointers.
97
98 2002-03-22  Dick Porter  <dick@ximian.com>
99
100         * threads.c: Fix a race condition where a thread can start and
101         exit before the handle has been properly initialised (no reason
102         why the handle couldn't be initialised beforehand, so do so)
103
104         Fix a ms to ns conversion magnitude thinko.
105
106 2002-03-21  Dick Porter  <dick@ximian.com>
107
108         * semaphores.c: Fix a problem when waiting for one or more
109         semaphores, and another semaphore is Released (all waiting
110         semaphores assumed they were signalled)
111
112 2002-03-29  Dan Lewis <dihlewis@yahoo.co.uk>
113
114         * io.h, io.c, uglify.h: added MoveFile, CopyFile, CreateDirectory,
115         RemoveDirectory, GetFileAttributes, GetFileAttributesEx
116
117 2002-03-19  Dietmar Maurer  <dietmar@ximian.com>
118
119         * threads.c (Sleep): bug fix: 1ms == 1000000ns
120
121 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
122
123         * io.h, io.c, events.c, mutexes.c, semaphores.c, sockets.c,
124         threads.c, io.c: added flush method to handles.
125
126         * io.c: FlushFileBuffers() and FindFirstFile() functions.
127
128 Thu Mar 7 17:21:52 CET 2002 Paolo Molaro <lupus@ximian.com>
129
130         * threads.c, timed-thread.c, wait.c: Boehm-GC anable.
131
132 2002-02-20  Dick Porter  <dick@ximian.com>
133
134         * io-layer.h: Always build without cygwin support on windows
135
136 Mon Feb 18 15:50:59 CET 2002 Paolo Molaro <lupus@ximian.com>
137
138         * sockets.c: #undef DEBUG.
139
140 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
141
142         * io-layer.h: conditionally include sys/filio.h and sys/sockio.h
143         for FIONBIO, FIONREAD, and SIOCATMARK.
144
145 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
146
147         * sockets.c: conditionally include sys/filio.h and sys/sockio.h
148         for FIONBIO, FIONREAD, and SIOCATMARK.
149
150 2002-02-13  Dick Porter  <dick@ximian.com>
151
152         * sockets.c: Implement shutdown and select
153
154 2002-02-13  Jeffrey Stedfast  <fejj@ximian.com>
155
156         * mono-mutex.[c,h]: New source files that thinly wrap all pthread
157         functions that take pthread_mutex_t and/or pthread_mutexattr_t
158         arguments for the sake of portability. Implements recursive
159         mutexes and pthread_mutex_timedlock.
160
161         * critical-sections.c:
162         * events.c:
163         * handles.c:
164         * mutexes.c:
165         * semaphores.c:
166         * threads.c:
167         * timed-thread.c:
168         * wait.c: Use the mono-mutex wrapper portability functions/macros.
169
170         * pthread-compat.[c,h]: Replaced by mono-mutex.[c,h]
171
172 2002-01-23  Dick Porter  <dick@ximian.com>
173
174         * sockets.c: Networking support, mostly wrapping BSD socket APIs
175         with handle code, and translating errno into w32 error codes.
176
177         * macros.h: Some w32 macros used with the socket support
178
179         * error.c: Implemented GetLastError() and SetLastError()
180
181         * Makefile.am: Added sockets, with kludge to override some symbols
182
183 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
184
185         * unicode.c (_wapi_unicode_to_utf8): byteswap UTF16 strings before
186         passing them to iconv
187         (_wapi_unicode_to_utf8): only swap bytes on LE systems, remove bug
188         from previous commit.
189
190 2001-12-11  Dick Porter  <dick@ximian.com>
191
192         * io.c: Implement DeleteFile(), GetFileTime(), SetFileTime() and
193         FileTimeToSystemTime().
194
195         * unicode.c (unicode_len): Nasty way of finding length of unicode
196         string with embedded NULLs (counts until two NULLs together).
197
198         * mutexes.c (mutex_close): 
199         * events.c (event_close): Release the internal pthreads resources
200
201 2001-11-26  Dick Porter  <dick@ximian.com>
202
203         * critical-sections.c:
204         * events.c:
205         * handles.c:
206         * io.c:
207         * mutexes.c:
208         * semaphores.c:
209         * threads.c:
210         * timed-thread.c:
211         * wait.c: turn off DEBUG messages
212
213 2001-11-22  Dick Porter  <dick@ximian.com>
214
215         * handles.c (SignalObjectAndWait): Implement
216
217         * wait.c (WaitForSingleObject): Fix case where timeout == 0
218
219         * threads.c:
220         * semaphores.c:
221         * mutexes.c:
222         * io.c:
223         * events.c: Support for SignalObjectAndWait
224         
225 2001-11-21  Dick Porter  <dick@ximian.com>
226
227         * events.c:
228         * handles.c:
229         * mutexes.c:
230         * semaphores.c:
231         * threads.c:
232         * wait.c: Reliable method of returning which handle was signalled
233         on return from WaitForMultipleObjects().
234
235 2001-11-21  Dick Porter  <dick@ximian.com>
236
237         * events.c: Implement events
238
239 2001-11-15  Dick Porter  <dick@ximian.com>
240
241         * mutexes.c: Implement mutexes
242
243         * threads.c: 
244         * semaphores.c: 
245         * misc.c: Factor out some common code
246
247 2001-11-13  Dick Porter  <dick@ximian.com>
248
249         * threads.c: Implement TLS.  Implement GetCurrentThreadId(), and
250         GetCurrentThread() by maintaining a hash of thread handles.
251
252         * threads.h: Define thread and process creation flags
253
254 2001-11-12  Dick Porter  <dick@ximian.com>
255
256         * critical-sections.c: Implement critical sections
257
258 2001-11-12  Dick Porter  <dick@ximian.com>
259
260         * semaphores.c: Implement semaphores
261
262         * wait.c (wait_for_item): Maintain a wait count rather than count
263         signalled booleans.
264
265         * threads.c (thread_wait_multiple): Don't lock the wait item, that
266         will block other wait threads
267
268 2001-11-11  Dick Porter  <dick@ximian.com>
269
270         * Makefile.am: Rename some automake variables
271         (from Nick Drochak <ndrochak@gol.com>)
272
273 2001-11-10  Dick Porter  <dick@ximian.com>
274
275         * Makefile.am (libwapiincludedir): Fix include destination
276
277         * .cvsignore: Ignore generated files
278
279 2001-11-10  Dietmar Maurer  <dietmar@ximian.com>
280
281         * pthread-compat.c: added some include files to make it compile on
282         linux.
283
284 2001-11-08  Dick Porter  <dick@ximian.com>
285
286         * Initial checkin.
287
288         This is a library emulating the win32 threading and IO API.
289
290