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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7578abcb2db0aaab09b3e61f905b0a39f433521630fbc496b12e9042c25b54e7
4
- data.tar.gz: ac19ef8379687387ea79a17426b3197a713c6b4b0eb5d9e86f620d931e3fe3f0
3
+ metadata.gz: d061fd5261bb0fabc616df89690cddd1c7545d5fc41799bc107050da08bf7635
4
+ data.tar.gz: 13a9e58f76b560a9f5602da7977739c936aa71732338f802a97d9fc9a6224480
5
5
  SHA512:
6
- metadata.gz: 5f335d1a6f5b7100660b458daf3014e62b52fed0f1ab0e67fcd8b914a0a87111027241348812f236af6c35c78e20461c7592270677dc577bc3f45b06c7142fb5
7
- data.tar.gz: 2309e4cec26af24d6f7af3a067858bade3db001f9ab3d0c300ff151f0489625b736e6388fa4a4c3b9c98b53d7e71d54a2e6a69ff8e9883a17d16ca1021968953
6
+ metadata.gz: 1f162eadf2c624ebe86fe174578096ccb473e5f9f031f75d8135ed77cf9911f006e4b3a9957b8402829a67fa480d80c7fdf3a3abdbb02e959ae1c135e99c3c92
7
+ data.tar.gz: 8201e656ac4f8182380bb08af4290c51bddc62d97214fd39bf0e7761f48f339a859f809dd12539c2a53a85219e4b4b6a68bcb9a81c7ef7c9dd4bab3da563d053
checksums.yaml.gz.sig CHANGED
Binary file
@@ -173,8 +173,6 @@ module Async
173
173
  break
174
174
  end
175
175
  end
176
- # ensure
177
- # Console.logger.error(self) {$!} if $!
178
176
  end.resume
179
177
 
180
178
  return true
@@ -1,13 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Released under the MIT License.
4
- # Copyright, 2020-2022, by Samuel Williams.
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
- @endpoint = IO::Endpoint.unix(@path, ::Socket::SOCK_DGRAM)
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
- Sync do
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-2022, by Samuel Williams.
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
- @endpoint = IO::Endpoint.unix(path, ::Socket::SOCK_DGRAM)
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
- Sync do
67
- @endpoint.connect do |peer|
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)") if ready
54
+ self.ready!(status: "(exec)")
55
55
  else
56
56
  self.before_spawn(arguments, options)
57
57
  end
58
58
 
59
- # TODO prefer **options... but it doesn't support redirections on < 2.7
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-2022, by Samuel Williams.
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)") if ready
69
+ self.ready!(status: "(spawn)")
70
70
  else
71
71
  self.before_spawn(arguments, options)
72
72
  end
73
73
 
74
74
  begin
75
- # TODO prefer **options... but it doesn't support redirections on < 2.7
76
- pid = ::Process.spawn(*arguments, options)
75
+ pid = ::Process.spawn(*arguments, **options)
77
76
  ensure
78
77
  _, status = ::Process.wait2(pid)
79
78
 
@@ -5,6 +5,6 @@
5
5
 
6
6
  module Async
7
7
  module Container
8
- VERSION = "0.18.1"
8
+ VERSION = "0.18.3"
9
9
  end
10
10
  end
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
- This project uses the [Developer Certificate of Origin](https://developercertificate.org/). All contributors to this project must agree to this document to have their contributions accepted.
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
- ### Contributor Covenant
33
+ ### Community Guidelines
34
34
 
35
- This project is governed by the [Contributor Covenant](https://www.contributor-covenant.org/). All contributors and participants agree to abide by its terms.
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.1
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-24 00:00:00.000000000 Z
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.3
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