Age | Commit message (Collapse) | Author |
|
|
|
but doesn't a page-multiple amount of data and we're reading everything.
|
|
|
|
(pipe_select): Renamed to `pipe_select_readable'.
(pipe_writable, pipe_wait_writable, pipe_select_writable): New functions.
(pipe_acquire_reader): Call _pipe_first_reader if necessary.
(_pipe_first_reader): New declaration.
(struct pipe): New fields: `write_limit', `write_atomic',
`pending_writes', `pending_write_selects'.
(struct pipe): `pending_selects' changed to `pending_read_selects'.
(pipe_pair_select): New declaration.
|
|
`pipe_select_read' --> `pipe_select_readable'.
`pipe_select_write' --> `pipe_select_writable'.
|
|
(pipe_recv): Wakeup blocked writers.
(pipe_kick): Function deleted.
(pipe_create): Make connection-oriented pipes start out broken.
(_pipe_first_reader): New function.
(_pipe_first_writer): Don't check whether PIPE is connection- oriented before
clearing PIPE_BROKEN, as otherwise it will never be set.
(pipe_pair_select_read_write): New function.
(pipe_multiple_lock): New variable.
|
|
|
|
|
|
|
|
(pipe_wait): Use hurd_condition_wait to detect interrupts instead of previous
ad-hoc mechanism.
|
|
`aquire' -> `acquire'.
|
|
|
|
(_pipe_first_writer): New function.
(_pipe_no_writers, _pipe_no_writers): New function.
(pipe_break): Function deleted.
|
|
(pipe_aquire_reader, pipe_aquire_writer): New functions.
(pipe_release_reader, pipe_release_writer): New functions.
(pipe_add_reader, pipe_add_writer): New functions.
(pipe_remove_reader, pipe_remove_writer): New functions.
(_pipe_first_writer): New function decl.
(_pipe_no_writers, _pipe_no_writers): New function decl.
(pipe_aquire, pipe_release): Function deleted.
(pipe_break): Function decl deleted.
|
|
control packet if there is no data packet, since pipe_write always writes a
data packet.
|
|
if there is no corresponding data packet.
(pipe_send): Change the test to determine whether we should write a control
packet, so that we only do so if we need to. Also, don't record the source
address in control packets, as it's recorded in the following data packet
anyway, and this prevents it from being dealloc'd twice.
|
|
Make these declarations extern so they don't fuck up initialization.
(seqpacket_pipe_class): Renamed to `seqpack_pipe_class'.
|
|
|