sass-embedded 1.2.1 → 1.2.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d87f5611bae8b02d6a09da79aee52b036f4cd22e1555bb404547ad9cfdf199b6
4
- data.tar.gz: 138b4a83caebb61f155ff1206bb717f6ca25c06b537717186551dcc8e9a63893
3
+ metadata.gz: caff83784f11ce056264c70b15fbb32b9e5a444ec6cb7119941068e3b1bacc1d
4
+ data.tar.gz: 92b3e3a9c727ce9576acba21c79b2b2cc582bd3915b64473780c4d7a2a2bd3b4
5
5
  SHA512:
6
- metadata.gz: 5cfbd5d4312abc574ac81fe579582423643429b3e5b3de95ee3486a4e40f25b7d85d75a8cfaf51450787385c8ab481778d39cf426b007492230078c661015631
7
- data.tar.gz: 6cfca3c838659efc014313c7d40516b6ca13e3d814d2773cb37bff707755d9c3e5e7e24097e9746eea866f8615fe7fd97ee43c28c5a709e820adaa54e28491ef
6
+ metadata.gz: 3754adcb1cf2efc38dec71730e1e843cd63c36a27dc5060cbe9d1e24cf7429b8f78d3f94ea9b9229663fac71ce6d5ed3c5be8b266b4bae7926eece63256b9dd3
7
+ data.tar.gz: 1bed1f7e2d34cef199a4cd35c254a6c41ccb5a2307efe465134dcd7881007aa5975e74b90c36bc612073fea4ca67480183e5c33df31487dde27ec1327559c2fe
@@ -18,7 +18,7 @@ module Sass
18
18
  Thread.new do
19
19
  loop do
20
20
  warn(@stderr.readline, uplevel: 1)
21
- rescue IOError
21
+ rescue IOError, Errno::EBADF
22
22
  break
23
23
  end
24
24
  end
@@ -6,18 +6,20 @@ module Sass
6
6
  #
7
7
  # It dispatches messages between mutliple instances of {Host} and a single {Compiler}.
8
8
  class Dispatcher
9
- PROTOCOL_ERROR_ID = 4_294_967_295
9
+ PROTOCOL_ERROR_ID = 0xffffffff
10
10
 
11
11
  def initialize
12
12
  @compiler = Compiler.new
13
13
  @observers = {}
14
- @id = 0
14
+ # TODO: Revert to `@id = 0` when upstream bug is fixed
15
+ # https://github.com/sass/dart-sass-embedded/pull/80
16
+ @id = 0xfffffffe
15
17
  @mutex = Mutex.new
16
18
 
17
19
  Thread.new do
18
20
  loop do
19
21
  receive_message EmbeddedProtocol::OutboundMessage.decode @compiler.read
20
- rescue IOError => e
22
+ rescue IOError, Errno::EBADF => e
21
23
  half_close
22
24
  @observers.each_value do |observer|
23
25
  observer.error e
@@ -39,9 +41,11 @@ module Sass
39
41
  end
40
42
 
41
43
  def unsubscribe(id)
42
- @observers.delete(id)
44
+ @mutex.synchronize do
45
+ @observers.delete(id)
43
46
 
44
- close if half_closed? && @observers.empty?
47
+ close if half_closed? && @observers.empty?
48
+ end
45
49
  end
46
50
 
47
51
  def close
@@ -74,7 +78,13 @@ module Sass
74
78
  case oneof
75
79
  when :error
76
80
  half_close
77
- @observers[message.id]&.public_send(oneof, message)
81
+ if message.id == PROTOCOL_ERROR_ID
82
+ @observers.each_value do |observer|
83
+ observer.public_send(oneof, message)
84
+ end
85
+ else
86
+ @observers[message.id].public_send(oneof, message)
87
+ end
78
88
  when :compile_response, :version_response
79
89
  @observers[message.id].public_send(oneof, message)
80
90
  when :log_event, :canonicalize_request, :import_request, :file_import_request, :function_call_request
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Sass
4
4
  class Embedded
5
- VERSION = '1.2.1'
5
+ VERSION = '1.2.4'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sass-embedded
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - なつき
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-21 00:00:00.000000000 Z
11
+ date: 2022-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -159,8 +159,8 @@ homepage: https://github.com/ntkme/sass-embedded-host-ruby
159
159
  licenses:
160
160
  - MIT
161
161
  metadata:
162
- documentation_uri: https://rubydoc.info/gems/sass-embedded/1.2.1
163
- source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v1.2.1
162
+ documentation_uri: https://rubydoc.info/gems/sass-embedded/1.2.4
163
+ source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v1.2.4
164
164
  funding_uri: https://github.com/sponsors/ntkme
165
165
  post_install_message:
166
166
  rdoc_options: []