<feed xmlns='http://www.w3.org/2005/Atom'>
<title>scsh-process/tests, branch 1.7.1</title>
<subtitle>Egg to add Scheme Shell process notation to CHICKEN Scheme.
</subtitle>
<id>https://code.more-magic.net/scsh-process/atom?h=1.7.1</id>
<link rel='self' href='https://code.more-magic.net/scsh-process/atom?h=1.7.1'/>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/scsh-process/'/>
<updated>2025-07-02T12:41:53Z</updated>
<entry>
<title>Fix cleanup handling in wait for processes forked without scsh-process</title>
<updated>2025-07-02T12:41:53Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2025-07-02T12:41:53Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/scsh-process/commit/?id=4a9adfd4591ca5de96b1294cd47d12c4efc22535'/>
<id>urn:sha1:4a9adfd4591ca5de96b1294cd47d12c4efc22535</id>
<content type='text'>
Similar to the C5 code, here we assumed that proc+condition would be
true if the pid-or-process argument was a raw pid number, as taken
from the table maintained by scsh-process.

Unfortunately, this assumption only holds when the process would've
been forked using "fork" from the scsh-process egg.  If one forked
with the "core" fork from CHICKEN itself, both p and pending-before
would be false, which would lead to a "(car) bad argument type: #f"
error.

Reported by Matthew Welland.
</content>
</entry>
<entry>
<title>Port to CHICKEN 6</title>
<updated>2025-02-07T09:50:29Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2025-02-07T09:50:29Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/scsh-process/commit/?id=5d2659453493d7a1de7b80257763c72236c4008f'/>
<id>urn:sha1:5d2659453493d7a1de7b80257763c72236c4008f</id>
<content type='text'>
This allows us to reduce the code considerably because CHICKEN 6 now
has native process objects, so we don't need to keep our own version
of process tracking.

Note that we still need to keep our own list of child processes
created by "fork", because we want the automatic subprocess reaper to
be able to work in a thread.  This means we still need to have a
central mapping of our own subprocesses to condition object so we can
signal the thread which is waiting.

After all I'm not so sure if this was such a great idea, but it's kind
of a neat feature that could be useful, so keep it for now.
</content>
</entry>
<entry>
<title>Fix issue with redirection in run/port (and, by extension, run/string)</title>
<updated>2021-09-14T11:54:29Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2021-09-14T11:54:29Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/scsh-process/commit/?id=eb97f7d4f6a6428b52f6cd24e54d3e4650f631a0'/>
<id>urn:sha1:eb97f7d4f6a6428b52f6cd24e54d3e4650f631a0</id>
<content type='text'>
We would initially create a pipe, dup(2) that onto fd 1 in the forked
process and open an output port on the original fd.  This resulted in
a pretty nasty bug: if the fd would be redirected (by number) later,
it would not affect the output port because that was set up to point
to the original fd.

Instead, open an output port to the newly set up stdout and close the
direct pipe port.
</content>
</entry>
<entry>
<title>Port scsh-process to CHICKEN 5</title>
<updated>2018-08-16T20:41:12Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2018-08-16T20:41:12Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/scsh-process/commit/?id=dd7d5a27716ca0c02314487711f6a9cb32731440'/>
<id>urn:sha1:dd7d5a27716ca0c02314487711f6a9cb32731440</id>
<content type='text'>
Thanks to Vasilij Schneidermann for providing an initial patch.
</content>
</entry>
<entry>
<title>Wrap tests in module to make porting easier</title>
<updated>2018-08-16T20:00:05Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2018-08-16T20:00:05Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/scsh-process/commit/?id=b36f392a9a09bb666390260311df358c54cc0f8b'/>
<id>urn:sha1:b36f392a9a09bb666390260311df358c54cc0f8b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Drop bogus test</title>
<updated>2018-08-16T19:59:29Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2018-08-16T19:59:29Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/scsh-process/commit/?id=8362d124fa8df2c6fafd677c16f72facebe8ee1f'/>
<id>urn:sha1:8362d124fa8df2c6fafd677c16f72facebe8ee1f</id>
<content type='text'>
run*/string* does not exist, and run/string* doesn't raise an
exception on nonzero exit status.
</content>
</entry>
<entry>
<title>Make "&gt;" redirect truncate existing files</title>
<updated>2018-04-21T08:40:07Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2018-04-21T08:40:07Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/scsh-process/commit/?id=e0a136839ff1f359f01320e2c3e32bae0164b785'/>
<id>urn:sha1:e0a136839ff1f359f01320e2c3e32bae0164b785</id>
<content type='text'>
Thanks to Joerg Wittenberger
</content>
</entry>
<entry>
<title>Fix ordering of (= x y) redirection EPF</title>
<updated>2018-01-26T21:25:23Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2018-01-26T21:25:23Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/scsh-process/commit/?id=a7fd28ee34353eac9502782ceb0ed3961026f284'/>
<id>urn:sha1:a7fd28ee34353eac9502782ceb0ed3961026f284</id>
<content type='text'>
Thanks to Diego "dieggsy" for pointing out this incongruity with
scsh-process.
</content>
</entry>
<entry>
<title>Run signal handler in a separate thread</title>
<updated>2017-11-18T12:58:13Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2017-11-18T12:58:13Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/scsh-process/commit/?id=1adc1af6d9b52ad33f0b773cfdcd64573a2b7b9e'/>
<id>urn:sha1:1adc1af6d9b52ad33f0b773cfdcd64573a2b7b9e</id>
<content type='text'>
This seems to be necessary so that condition-variable-broadcast! works
when the signal handler is running in the same thread as the waiting
thread.
</content>
</entry>
<entry>
<title>Also unmask (if needed) sigchld in the child process thunk</title>
<updated>2017-11-10T20:08:02Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2017-11-10T20:08:02Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/scsh-process/commit/?id=4e420e4d032b550fa6e0193a3bbf04f4db76cc8b'/>
<id>urn:sha1:4e420e4d032b550fa6e0193a3bbf04f4db76cc8b</id>
<content type='text'>
This would be otherwise kept in masked mode because the thunk is in
the dynamic extent of the dynamic-wind.
</content>
</entry>
</feed>
