async-container 0.18.1 → 0.18.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/async/container/generic.rb +0 -2
- data/lib/async/container/notify/server.rb +3 -13
- data/lib/async/container/notify/socket.rb +4 -10
- data/lib/async/container/process.rb +2 -3
- data/lib/async/container/thread.rb +3 -4
- data/lib/async/container/version.rb +1 -1
- data/readme.md +3 -3
- data.tar.gz.sig +0 -0
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d061fd5261bb0fabc616df89690cddd1c7545d5fc41799bc107050da08bf7635
|
4
|
+
data.tar.gz: 13a9e58f76b560a9f5602da7977739c936aa71732338f802a97d9fc9a6224480
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f162eadf2c624ebe86fe174578096ccb473e5f9f031f75d8135ed77cf9911f006e4b3a9957b8402829a67fa480d80c7fdf3a3abdbb02e959ae1c135e99c3c92
|
7
|
+
data.tar.gz: 8201e656ac4f8182380bb08af4290c51bddc62d97214fd39bf0e7761f48f339a859f809dd12539c2a53a85219e4b4b6a68bcb9a81c7ef7c9dd4bab3da563d053
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
@@ -1,13 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
# Released under the MIT License.
|
4
|
-
# Copyright, 2020-
|
4
|
+
# Copyright, 2020-2024, by Samuel Williams.
|
5
5
|
# Copyright, 2020, by Olle Jonsson.
|
6
6
|
|
7
|
-
require 'async/io'
|
8
|
-
require 'async/io/unix_endpoint'
|
9
|
-
require 'kernel/sync'
|
10
|
-
|
11
7
|
require 'tmpdir'
|
12
8
|
require 'securerandom'
|
13
9
|
|
@@ -62,19 +58,13 @@ module Async
|
|
62
58
|
class Context
|
63
59
|
def initialize(path)
|
64
60
|
@path = path
|
65
|
-
@
|
66
|
-
|
67
|
-
Sync do
|
68
|
-
@bound = @endpoint.bind
|
69
|
-
end
|
61
|
+
@bound = Addrinfo.unix(@path, ::Socket::SOCK_DGRAM).bind
|
70
62
|
|
71
63
|
@state = {}
|
72
64
|
end
|
73
65
|
|
74
66
|
def close
|
75
|
-
|
76
|
-
@bound.close
|
77
|
-
end
|
67
|
+
@bound.close
|
78
68
|
|
79
69
|
File.unlink(@path)
|
80
70
|
end
|
@@ -1,14 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
# Released under the MIT License.
|
4
|
-
# Copyright, 2020-
|
4
|
+
# Copyright, 2020-2024, by Samuel Williams.
|
5
5
|
|
6
6
|
require_relative 'client'
|
7
7
|
|
8
|
-
require 'async/io'
|
9
|
-
require 'async/io/unix_endpoint'
|
10
|
-
require 'kernel/sync'
|
11
|
-
|
12
8
|
module Async
|
13
9
|
module Container
|
14
10
|
module Notify
|
@@ -32,7 +28,7 @@ module Async
|
|
32
28
|
# @parameter path [String] The path to the UNIX socket used for sending messages to the process manager.
|
33
29
|
def initialize(path)
|
34
30
|
@path = path
|
35
|
-
@
|
31
|
+
@address = Addrinfo.unix(path, ::Socket::SOCK_DGRAM)
|
36
32
|
end
|
37
33
|
|
38
34
|
# Dump a message in the format requied by `sd_notify`.
|
@@ -63,10 +59,8 @@ module Async
|
|
63
59
|
raise ArgumentError, "Message length #{message.bytesize} exceeds #{MAXIMUM_MESSAGE_SIZE}: #{message.inspect}"
|
64
60
|
end
|
65
61
|
|
66
|
-
|
67
|
-
|
68
|
-
peer.send(data)
|
69
|
-
end
|
62
|
+
@address.connect do |peer|
|
63
|
+
peer.sendmsg(data)
|
70
64
|
end
|
71
65
|
end
|
72
66
|
|
@@ -51,13 +51,12 @@ module Async
|
|
51
51
|
# This method replaces the child process with the new executable, thus this method never returns.
|
52
52
|
def exec(*arguments, ready: true, **options)
|
53
53
|
if ready
|
54
|
-
self.ready!(status: "(exec)")
|
54
|
+
self.ready!(status: "(exec)")
|
55
55
|
else
|
56
56
|
self.before_spawn(arguments, options)
|
57
57
|
end
|
58
58
|
|
59
|
-
|
60
|
-
::Process.exec(*arguments, options)
|
59
|
+
::Process.exec(*arguments, **options)
|
61
60
|
end
|
62
61
|
end
|
63
62
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
# Released under the MIT License.
|
4
|
-
# Copyright, 2020-
|
4
|
+
# Copyright, 2020-2024, by Samuel Williams.
|
5
5
|
# Copyright, 2020, by Olle Jonsson.
|
6
6
|
|
7
7
|
require_relative 'channel'
|
@@ -66,14 +66,13 @@ module Async
|
|
66
66
|
# This creates the illusion that this method does not return (normally).
|
67
67
|
def exec(*arguments, ready: true, **options)
|
68
68
|
if ready
|
69
|
-
self.ready!(status: "(spawn)")
|
69
|
+
self.ready!(status: "(spawn)")
|
70
70
|
else
|
71
71
|
self.before_spawn(arguments, options)
|
72
72
|
end
|
73
73
|
|
74
74
|
begin
|
75
|
-
|
76
|
-
pid = ::Process.spawn(*arguments, options)
|
75
|
+
pid = ::Process.spawn(*arguments, **options)
|
77
76
|
ensure
|
78
77
|
_, status = ::Process.wait2(pid)
|
79
78
|
|
data/readme.md
CHANGED
@@ -28,8 +28,8 @@ We welcome contributions to this project.
|
|
28
28
|
|
29
29
|
### Developer Certificate of Origin
|
30
30
|
|
31
|
-
|
31
|
+
In order to protect users of this project, we require all contributors to comply with the [Developer Certificate of Origin](https://developercertificate.org/). This ensures that all contributions are properly licensed and attributed.
|
32
32
|
|
33
|
-
###
|
33
|
+
### Community Guidelines
|
34
34
|
|
35
|
-
This project is
|
35
|
+
This project is best served by a collaborative and respectful environment. Treat each other professionally, respect differing viewpoints, and engage constructively. Harassment, discrimination, or harmful behavior is not tolerated. Communicate clearly, listen actively, and support one another. If any issues arise, please inform the project maintainers.
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: async-container
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.18.
|
4
|
+
version: 0.18.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
@@ -41,7 +41,7 @@ cert_chain:
|
|
41
41
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
42
42
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
43
43
|
-----END CERTIFICATE-----
|
44
|
-
date: 2024-04
|
44
|
+
date: 2024-09-04 00:00:00.000000000 Z
|
45
45
|
dependencies:
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: async
|
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
107
|
- !ruby/object:Gem::Version
|
108
108
|
version: '0'
|
109
109
|
requirements: []
|
110
|
-
rubygems_version: 3.5.
|
110
|
+
rubygems_version: 3.5.11
|
111
111
|
signing_key:
|
112
112
|
specification_version: 4
|
113
113
|
summary: Abstract container-based parallelism using threads and processes where appropriate.
|
metadata.gz.sig
CHANGED
Binary file
|