Skip to content

Modify rpcq:start-server to support graceful shutdown of worker threads #75

@appleby

Description

@appleby

As discussed in the comment thread for PR #74, it's worth investigating whether rcpq:start-server can be modified to support graceful shutdown of worker threads, rather than relying on bt:destory-thread for testing.

The reason for suggesting this change is that just calling bt:destroy-thread was causing test failures on CCL. Those failures were addressed by the changes in #74, but bt:destroy-thread is something of a nuclear option for killing threads, and the bordeaux-threads documentation for destroy-threads warns:

This should be used with caution: it is implementation-defined whether the thread runs cleanup forms or releases its locks first.

So we'd like to do graceful termination of server threads, if possible.

This work might dovetail nicely with the non-blocking start-server changes suggested in #61.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions