wurk 1.7.4 → 1.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/wurk/swarm.rb +13 -0
- data/lib/wurk/version.rb +1 -1
- data/vendor/assets/dashboard/wurk-manifest.json +2 -2
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ac61be234c0359ccb0761df401c351021317cf2a5ae162e2329dcd94d7b8b4af
|
|
4
|
+
data.tar.gz: 00e7d69e0a3d440f1bf335ebbeeceb80b7e93ec1f82a6f48fcc189f54c4737ab
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bd52c4819554b5cad428d2514379005027aaa21cddf679ae89974edd12568075711e5dbc41b86da656f7df4a6b28ccde88cd421952002cd9966ec0e72b7841cd
|
|
7
|
+
data.tar.gz: 796f59f291295b5681a920cb5c9d04baa70fb416afc3246db55d1ebbd009f5a6f348d785b57c80b1dd9a07dc249771b67b3bb9203927e41becf0484cf27a6c74
|
data/lib/wurk/swarm.rb
CHANGED
|
@@ -360,7 +360,20 @@ module Wurk
|
|
|
360
360
|
# stall signal delivery if the pipe fills. `exception: false` returns
|
|
361
361
|
# :wait_writable instead of raising when full (drop the coalescible
|
|
362
362
|
# duplicate); a closed pipe during shutdown is ignored too.
|
|
363
|
+
#
|
|
364
|
+
# The owner check is what keeps ONE child's signal from draining the whole
|
|
365
|
+
# fleet. A forked child inherits both this trap and the parent's live pipe,
|
|
366
|
+
# and `fork_child` cannot drop them until `Process.fork` RETURNS — the
|
|
367
|
+
# `_fork` hook chain runs child-side before that, so there is a window
|
|
368
|
+
# where an operator's `kill <child_pid>` writes TERM into the PARENT's
|
|
369
|
+
# supervise loop and drains every sibling. Measured: with that chain slowed
|
|
370
|
+
# the way a loaded box does, TERMing a single child killed the supervisor
|
|
371
|
+
# and all of it. Comparing pids instead closes it with no window at all —
|
|
372
|
+
# the inherited trap is inert in the child from its first instruction,
|
|
373
|
+
# because `@owner_pid` was stamped before the fork.
|
|
363
374
|
def emit_signal(sig)
|
|
375
|
+
return unless owner?
|
|
376
|
+
|
|
364
377
|
@signal_write&.write_nonblock("#{sig}\n", exception: false)
|
|
365
378
|
rescue ::IOError, ::Errno::EPIPE, ::Errno::EBADF
|
|
366
379
|
nil
|
data/lib/wurk/version.rb
CHANGED