summaryrefslogtreecommitdiff
path: root/libports/ChangeLog
blob: fc4bc0bc011e522445e6a4bf57de4c19ed69ddc9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
Thu Feb 25 10:31:57 1999  Thomas Bushnell, BSG  <tb@mit.edu>

	* end-rpc.c (ports_end_rpc): Signal ports_block anytime an rpc
	ends and someone is waiting on an inhibition.  

1999-01-01  Roland McGrath  <roland@baalperazim.frob.com>

	* interrupt-on-notify.c (ports_interrupt_self_on_notification): Use
	assert to check we are in an rpc; don't return EIEIO (not appropriate).

1997-08-14  Miles Bader  <miles@gnu.ai.mit.edu>

	* interrupt-rpcs.c (ports_interrupt_rpcs): Put RPC into the
	interrupted list.
	* end-rpc.c (ports_end_rpc): Call ports_self_interrupted to remove
	the current thread from the interrupted list.
	* ports.h (ports_self_interrupted): New declaration.
	(struct rpc_info): Add interrupted_next field.
	* Makefile (SRCS): Add interrupted.c.

Wed Aug 20 13:56:40 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* manage-multithread.c (ports_manage_port_operations_multithread):
 	Drop parms `wire_cthreads' and `wire_threads'.  Add parm `hook'.
	(thread_function): Call HOOK instead of cthread_wire and/or
	thread_wire.
	* ports.h (ports_manage_port_operations_multithread): Adjust
	declaration.

Fri Feb 14 00:51:32 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* create-bucket.c (ports_create_bucket): Initialize rpcs, flags, &
	count fields in RET.

Thu Sep 12 16:19:35 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* Makefile (HURDLIBS): New variable.
	(libports.so): Delete special depedency.

Wed Aug  7 15:28:48 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* ports.h (_ports_create_port_internal,
	ports_create_port_noinstall): New declarations.

Thu Jul 18 22:59:14 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* Makefile (SRCS): Add create-port-noinstall.c and create-internal.c.
	* create-port-noinstall.c: New file.
	* create-port.c (ports_create_port): Guts deleted; call new work
	function.
	* create-internal.c:  New file; all the guts from create-port.c.

Wed Jul  3 14:13:53 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* get-right.c (ports_get_right): Supply correct sync value in
 	notification request.

Mon May  6 16:33:55 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* ports.h (ports_allocate_port, ports_intern_external_port):
 	Delete obsolete declarations.
	* allocate-port.c, intern-external-port.c: Delete files.
	* Makefile (SRCS): Delete `intern-external-port.c' and
 	`allocate-port.c'.

Sun Apr 28 15:22:58 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* allocate-port.c: Add obsolescence link warning.
	* intern-external-port.c: Add obsolescence link warning.

Fri Mar 29 15:21:31 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* end-rpc.c (ports_end_rpc): Acquire _PORTS_LOCK before calling
	_ports_remove_notified_rpc.

Fri Mar 29 09:04:53 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* reallocate-from-external.c (ports_reallocate_from_external):
 	Require port to have a current port right.
	* reallocate-port.c (ports_reallocate_port): Likewise.

	* complete-deallocate.c (_ports_complete_deallocate): Only drop
 	port right if it isn't already null.

	* transfer-right.c: New file.
	* Makefile (SRCS): Add transfer-right.c.
	* ports.h (ports_claim_right): Doc fix.
	(ports_transfer_right): New function.

Thu Mar 28 10:47:58 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* claim-right.c (ports_claim_right): Take right out of port
	bucket.

	* manage-multithread.c (ports_manage_port_operations_multithread):
 	Fill in meaningful statuses and errors rather than just zero.
	* manage-one-thread.c (ports_manage_port_operations_one_thread):
	Likewise.

	* begin-rpc.c (ports_begin_rpc): Return EOPNOTSUPP, not EDIED, if
 	receive right is gone.

	* manage-one-thread.c (ports_manage_port_operations_one_thread):
 	Fill in default reply before doing work; we might return 0 and
 	mach_msg_server expects us to fill in a reply decently no matter
 	what.
	(ports_manage_port_operations_multithread): Likewise.

	* claim-right.c (ports_claim_right): Hold lock until sendright
 	frobbing is finished.

Wed Mar 20 13:32:13 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* destroy-right.c (ports_destroy_right): Don't do anything if port
	has already been destroyed.

	* ports.h (ports_claim_right): New declaration.
	* claim-right.c: New file.
	* Makefile (SRCS): Add `claim-right.c'.

Tue Mar  5 17:28:54 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* get-right.c (ports_get_right): Check mach_port_request_notification
	for error returns, against all odds.

Mon Feb 26 17:10:38 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* interrupt-on-notify.c (ports_interrupt_rpc_on_notification):
	Only set _PORTS_NOTIFICATIONS->prevp if _PORTS_NOTIFICATIONS != 0.
	Likewise for PN->prev_req_p.

Fri Jan 26 00:45:58 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* inhibit-class-rpcs.c (ports_inhibit_class_rpcs): Whoops, we
	still have the lock when hurd_condition_wait gets cancelled.
	* import-port.c (ports_import_port): Likewise.
	* create-port.c (ports_create_port): Likewise.
	* inhibit-bucket-rpcs.c (ports_inhibit_bucket_rpcs): Likewise.
	* inhibit-all-rpcs.c (ports_inhibit_all_rpcs): Likewise.
	* inhibit-port-rpcs.c (ports_inhibit_port_rpcs): Likewise.

	* import-port.c (ports_import_port): Don't lose a send right on
	PORT when we return an error.
	* create-port.c (ports_create_port): Delete the receive right, not
	the send right when we return an error.

Thu Jan 25 12:10:48 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* manage-multithread.c (ports_manage_port_operations_multithread):
	Pass INP->msgh_id, not INP to ports_begin_rpc.
	* manage-one-thread.c (ports_manage_port_operations_one_thread): Ditto.

Wed Jan 24 14:02:30 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* inhibit-all-rpcs.c (ports_inhibit_all_rpcs): Be interruptable;
	return EINTR if interrupted, or EBUSY if already inhibited.
	* inhibit-class-rpcs.c (ports_inhibit_class_rpcs): Likewise.
	* inhibit-port-rpcs.c (ports_inhibit_port_rpcs): Likewise.
	* inhibit-bucket-rpcs.c (ports_inhibit_bucket_rpcs): Likewise.
	* begin-rpc.c (ports_begin_rpc): Be interruptable.
	* create-port.c (ports_create_port): New function.
	* import-port.c (ports_import_port): New function.
	* allocate-port.c (ports_allocate_port): Call ports_create_port.
	* intern-external-port.c (ports_intern_external_port): Call
	ports_import_port.
	* ports.h (ports_create_port, ports_import_ports): New declarations.
	(PORTS_INHIBITED, PORTS_BLOCKED, PORTS_INHIBIT_WAIT, PORTS_NO_ALLOC,
 	PORTS_ALLOC_WAIT): New macros (global values for common flags).
	(PORT_BLOCKED, PORT_INHIBITED, PORT_INHIBIT_WAIT,
 	PORT_BUCKET_INHIBITED, PORT_BUCKET_BLOCKED, PORT_BUCKET_INHIBIT_WAIT,
 	PORT_BUCKET_NO_ALLOC, PORT_BUCKET_ALLOC_WAIT, PORT_CLASS_INHIBITED,
 	PORT_CLASS_BLOCKED, PORT_CLASS_INHIBIT_WAIT, PORT_CLASS_NO_ALLOC,
 	PORT_CLASS_ALLOC_WAIT, _PORTS_INHIBITED, _PORTS_BLOCKED,
 	_PORTS_INHIBIT_WAIT): Redefine using global flag values.
	(ports_inhibit_port_rpcs, ports_inhibit_all_rpcs,
	ports_inhibit_class_rpcs, ports_inhibit_bucket_rpcs): Return error_t.
	(ports_interupt_rpcs): Renamed from port_interrupt_rpc.

	* begin-rpc.c (ports_begin_rpc): Take new MSG_ID arg, and use it to
	see if the particular rpc shouldn't be inhibitable.
	* manage-multithread.c (ports_manage_port_operations_multithread):
	Pass INP to ports_begin_rpc, and only call DEMUXER if it returns 0.
	* manage-one-thread.c (ports_manage_port_operations_one_thread): Ditto.
	* ports.h (ports_begin_rpc): Add MSG_ID arg.
	(struct port_class): Add uninhibitable_rpcs field.
	(struct ports_msg_id_range): New structure.
	(ports_default_uninhibitable_rpcs): New declaration.
	* create-class.c (ports_create_class): Initialize the
	uninhibitable_rpcs field.
	* default-uninhibitable-rpcs.c (interrupt_operation_ids,
	ports_default_uninhibitable_rpcs): New variables.
	* Makefile (SRCS): Add default-uninhibitable-rpcs.c.

	* interrupt-rpcs.c (ports_interrupt_rpcs): Renamed from
	ports_interrupt_rpc.
	* Makefile (SRCS): Rename interrupt-rpc.c to interrupt-rpcs.c.
	* interrupt-operation.c (ports_S_interrupt_operation): Use
	ports_interrupt_rpcs instead of ports_interrupt_rpc.
	* no-senders.c (ports_no_senders): Likewise.

	* manage-multithread.c (ports_manage_port_operations_multithread):
	Fix spelling of cancel_threshold (was cancel_threshhold).
	* interrupt-operation.c (ports_S_interrupt_operation): Likewise.
	* ports.h (struct port_info): Likewise.
	* reallocate-from-external.c (ports_reallocate_from_external): Ditto.
	* reallocate-port.c (ports_reallocate_port): Likewise.

Wed Jan 17 13:08:49 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* no-senders.c (ports_no_senders): Interrupt RPCs on PI too.  Only
	do the ports_interrupt_notified_rpcs() if we're actually losing a ref.

Fri Jan  5 16:40:34 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* interrupt-on-notify.c (ports_interrupt_rpc_on_notification):
	If PORT is dead or bogus, interrupt RPC immediately, and don't add
	a new request.

Thu Dec 28 14:27:41 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* interrupt-on-notify.c (ports_interrupt_rpc_on_notification): If
	NEW_REQ is not needed, put it on the free list, don't call free on it.

Thu Dec 28 11:04:06 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* ports.h (ports_interrupt_self_on_port_death): New macro.

	* interrupt-notified-rpcs.c (ports_interrupt_notified_rpcs): Only
	bother to lock _PORTS_LOCK if there are notifications.

Wed Dec 27 16:27:47 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* ports.h (struct rpc_info): Get rid of next_notified/prev_notified_p.
	(struct rpc_notify): Get rid of port, what, next fields, and add
	rpc, notify, next, pending, next_req, and prev_req_p fields.
	(struct ports_notify): New structure.
	(_ports_notified_rpcs): Declaration removed.
	(_ports_notifications): New declaration.
	(_ports_free_ports_notifies): New declaration.
	Include <mach/notify.h>.
	* interrupt-on-notify.c (ports_interrupt_rpc_on_notification):
	Mostly rewrite to use new scheme.
	* interrupt-notified-rpcs (_ports_notified_rpcs): Variable removed.
	(_ports_notifications, _ports_free_ports_notifications): New variables.
	(ports_interrupt_notified_rpcs): Rewrite to use new scheme.
	(_ports_remove_notified_rpc): Ditto.
	(cancel_notification): Function removed.
	(remove_req): New function.

Tue Dec 26 14:39:51 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* interrupt-notified-rpcs.c (_ports_notified_rpcs,
	_ports_free_rpc_notifies): New variables.
	(ports_interrupt_notified_rpcs, cancel_notification,
	_ports_remove_notified_rpc): New functions.
	* interrupt-on-notify.c (ports_interrupt_rpc_on_notification,
	ports_interrupt_self_on_notification): New functions, new file.
	* ports.h (struct rpc_notify): New structure.
	(struct rpc_info): Add rpc_notifies, rpc_next_notified, and
	prev_notified_p fields.
	(_ports_notified_rpcs, _ports_free_rpc_notifies,
 	_ports_remove_notified_rpc, ports_interrupt_rpc_on_notification,
 	ports_interrupt_notified_rpcs, ports_interrupt_self_on_notification):
	New declarations.
	* begin-rpc.c (ports_begin_rpc): Initialize the notifies field.
	* end-rpc.c (ports_end_rpc): Get rid of any rpc notifications.
	* no-senders.c (ports_no_senders): Interrupt any rpcs requesting such.
	* dead-name.c (ports_dead_name): New function.
	* notify-dead-name.c (ports_do_mach_notify_dead_name): Call
	ports_dead_name().
	* Makefile (SRCS): Add interrupt-on-notify.c,
	interrupt-notified-rpcs.c, and dead-name.c.

Tue Nov 21 22:04:28 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* manage-multithread.c: Don't wire timeouts to zero.

Tue Nov 21 09:42:00 1995  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* ports.h (ports_do_mach_notify_dead_name): Declare `extern
	kern_return_t'.
	(ports_do_mach_notify_msg_accepted): Likewise.
	(ports_do_mach_notify_no_senders): Likewise.
	(ports_do_mach_notify_port_deleted): Likewise.
	(ports_do_mach_notify_port_destroyed): Likewise.
	(ports_do_mach_notify_send_once): Likewise.
	* notify-send-once.c: Include "notify_S.h".
	* notify-port-deleted.c: Likewise.
	* notify-msg-accepted.c: Likewise.
	* notify-port-destroyed.c: Likewise.
	* notify-no-senders.c: Likewise.
	* notify-dead-name.c: Likewise.

	* ports.h (struct port_info): New member `cancel_threshhold'.
	(ports_S_interrupt_operation): Include seqno arg; declare extern
	kern_return_t.
	* interrupt-operation.c: Include "interrupt_S.h".
	(ports_S_interrupt_operation): Set PI->cancel_threshhold if the
	incoming seqno is greater than the current threshhold.
	* manage-multithread.c
 	(ports_manage_port_operations_multithread/internal_demuxer): If
 	the incoming RPC has already been cancelled, then call
	hurd_thread_cancel before the user's demuxer.
	* manage-one-thread.c (ports_manage_port_operations_one_thread):
 	Doc fix.
	* intern-external-port.c (ports_intern_external_port): Initialize
 	PI->cancel_threshhold.
	* allocate-port.c (ports_allocate_port): Likewise.
	* reallocate-from-external.c (ports_reallocate_from_external):
 	Clear PI->cancel_threshhold.
	* reallocate-port.c (ports_reallocate_port): Likewise.

Sat Nov 18 08:50:13 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* inhibit-all-rpcs.c: If calling thread is serving an RPC, don't
	block waiting for that RPC to finish.
	* inhibit-class-rpcs.c: Likewise.
	* inhibit-bucket-rpcs.c: Likewise.
	* inhibit-port-rpcs.c: Likewise.

	* inhibit-all-rpcs.c (ports_inhibit_all_rpcs): Renamed from
	inhibit_all_rpcs.

Tue Oct 24 13:32:39 1995  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* manage-multithread.c
 	(ports_manage_port_operations_multithread/internal_demuxer): Don't
 	attempt RPC if we can't get a valid port struct.
	* manage-one-thread.c
 	(ports_manage_port_operations_one_thread/internal_demuxer): Likewise.

Mon Oct  9 14:57:48 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

        * Makefile: Specify shared library dependencies.

Fri Sep 22 10:19:17 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* ports.h: Include hurd.h.

Fri Sep  8 14:44:03 1995  Michael I. Bushnell, p/BSG  <mib@duality.gnu.ai.mit.edu>

	* end-rpc.c (ports_end_rpc): Call hurd_check_cancel.

Wed Sep  6 11:20:20 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* ports.h (ports_interrupt_server, ports_S_interrupt_operation):
	New declarations.
	* Makefile (OBJS): Add interruptServer.o.
	(SRCS): Add interrupt-operation.c.
	* interrupt-operation.c: New file.

	* ports.h (ports_notify_server, ports_do_mach_notify_*): New decls.
	* Makefile (MIGCOMSFLAGS): New variable.
	(OBJS): Added notifyServer.o.
	(SRCS): Added notify-dead-name.c, notify-no-senders.c,
 	notify-port-destroyed.c, notify-msg-accepted.c,
 	notify-port-deleted.c, and notify-send-once.c.
	* notify-dead-name.c: New file.
	* notify-no-senders.c: New file.
	* notify-port-destroyed.c: New file.
	* notify-msg-accepted.c: New file.
	* notify-port-deleted.c: New file.
	* notify-send-once.c: New file.

Wed Aug 30 16:00:36 1995  Miles Bader  <miles@geech.gnu.ai.mit.edu>

	* inhibit-port-rpcs.c (inhibit_port_rpcs): Renamed to
	`ports_inhibit_port_rpcs'.

Tue Aug 29 15:59:49 1995  Michael I. Bushnell, p/BSG  <mib@duality.gnu.ai.mit.edu>

	* manage-multithread.c (ports_manage_port_operations_multithread):
 	Hammer WIRE_CTHREADS on for now.

Thu Aug 24 10:25:52 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* inhibit-port-rpcs.c (inhibit_port_rpcs): thread_cancel ->
	hurd_thread_cancel.  Include <hurd.h>.
	* inhibit-class-rpcs.c (ports_inhibit_class_rpcs): Ditto.
	* inhibit-bucket-rpcs.c (ports_inhibit_bucket_rpcs): Ditto.
	* interrupt-rpc.c (ports_interrupt_rpc): Ditto.
	* inhibit-all-rpcs.c (inhibit_all_rpcs): Ditto.

	* Makefile (OBJS): Use :.c=.o notation.

Wed Aug 23 15:03:11 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* Makefile (REMHDRS): Removed.
	Order changed a bit.

Fri Jul 21 11:45:22 1995  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* get-right.c (ports_get_right): If the right is null (because we
 	are closing down), then just return null.  (This helps in a race
 	in ufs/ex2fs).

	* complete-deallocate.c (_ports_complete_deallocate): Clear
 	PI->port_right; and do it before releasing _ports_lock.

	* manage-multithread.c (ports_manage_port_operations_multithread):
 	For now, wire GLOBAL_TIMEOUT and THREAD_TIMEOUT to zero.

Tue Jul 18 14:29:49 1995  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* manage-multithread.c (ports_manage_port_operations_multithread)
 	[thread_function]: Return int.  Don't cthread_exit child threads;
 	just let them return normally.

Wed Jul 12 13:32:22 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* resume-class-rpcs.c (ports_resume_class_rpcs): Clear blocked
 	flag using correct name.

	* manage-multithread.c (ports_manage_port_operations_multithread)
 	[internal_demuxer]: Increment NREQTHREADS and TOTALTHREADS
 	*before* forking newthread.
	[thread_function]: Don't increment NREQTHREADS and TOTALTHREADS here.
	Initialize NREQTHREADS and TOTALTHREADS in main body of function.

Sat Jul  8 15:10:50 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* allocate-port.c (ports_allocate_port): Properly add PI to
 	CLASS's port list when the list is empty (why did this work before?).
	* intern-external-port.c (ports_intern_external_port): Ditto.
	* begin-rpc.c (ports_begin_rpc): Ditto adding INFO to PI's
	current_rpcs list.
	* create-class.c (ports_create_class): Initialize the PORTS and
	COUNT fields.

Thu Jul  6 15:36:57 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* Makefile: Removed dependencies that are now automatically
 	generated.

Tue Jun 27 15:28:54 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* Makefile (SRCS): Add it *back*.
	* stubs.c: New file.

Mon Jun 26 16:51:42 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* ports.h: Fix spelling error.

	* manage-multithread.c (ports_manage_port_operations_multithread):
	Declare NREQTHREADS asd TOTALTHREADS volatile.

	* manage-multithread.c
	(ports_manage_port_operations_multithread/thread_function): Don't
	hold lock while setting TIMEOUT.
	When master goes back to wait for messages, it should unlock LOCK.
	Declare ERR inside THREAD_FUNCTION so it doesn't get shared by
	multiple threads.

Thu Jun 22 11:28:56 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* get-right.c (ports_get_right): Parenthesize flag test correctly.
	* reallocate-from-external.c (ports_reallocate_from_external):
	Likewise.

	* enable-bucket.c (ports_enable_bucket): Clean flag correctly.

	* lookup-port.c (ports_lookup_port): UNlock port lock at exit of
        function.

	* bucket-iterate.c: Include <hurd/ihash.h> and <cthreads.h>.
	(ports_bucket_iterate): Fix decl of NXT.

Wed Jun 21 14:25:04 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* Makefile (SRCS): Added bucket-iterate.c.
	* bucket-iterate.c: New file.
	* ports.h (port_bucket_iterate): New decl.

Tue Jun 20 12:35:44 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* enable-bucket.c: Include <cthreads.h>.
	* enable-class.c: Likewise.
	* count-bucket.c: Likewise.

	* libports/lookup-port.c (ports_lookup_port): Remove assignment
        from if test.