libuv 2.0.6 → 2.0.8

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
  SHA1:
3
- metadata.gz: f06971c0a992853a7bb2578061b654f5439dfe2b
4
- data.tar.gz: c6126232cc2e4c9d6eeebcac01e9687c13104a84
3
+ metadata.gz: 41ddc84e1a810a7612a8110fff4ca3198e64491c
4
+ data.tar.gz: b2fabb89a9157bb01ea0a7d9d46546460c1bccd2
5
5
  SHA512:
6
- metadata.gz: f83c97587b83d00ed1144c19f534800c7170ac483c0f765b5a384e30ff0831abe57d9184ced77a29dd78cc167fe7f4fe875b68f153ca7c91b20322317cc14a7e
7
- data.tar.gz: 6d402335bb59b306f3d1a9532bf2582abbb662352927804154cf0e237063594d73a9ca4856b51ba1ffbcbd3e44ca68fca5be5803d32ff5a8fe6a134707f09261
6
+ metadata.gz: 2a11115fd3ee36971ad3a79bd6c7b2e413d2f37738e2e64d2eab37fd3e218f6b3e385d07b8dccbebe4ac1119ea3d6c437262215e414d10eb5cebb4e9768fb1f1
7
+ data.tar.gz: 86343c92ae7edfa6606bff919242127083620db9c2d254074b533c19d9db98dca9588c741765ae344d11ae1280b9344501ff3443a78431564a403f3321d72a74
@@ -6,35 +6,36 @@ module Libuv
6
6
  require 'libuv/error' # List of errors (matching those in uv.h)
7
7
  require 'libuv/q' # The promise library
8
8
 
9
+ # -- The classes required for a loop instance --
9
10
  require 'libuv/mixins/assertions' # Common code to check arguments
10
- require 'libuv/mixins/fs_checks' # Common code to check file system results
11
11
  require 'libuv/mixins/resource' # Common code to check for errors
12
12
  require 'libuv/mixins/listener' # Common callback code
13
- require 'libuv/mixins/stream' # For all libuv streams (tcp, pipes, tty)
14
- require 'libuv/mixins/net' # Common functions for tcp and udp
15
13
 
16
- # -- The classes required for a loop instance --
17
14
  require 'libuv/handle' # Base class for most libuv functionality
15
+ require 'libuv/prepare' # Called at the end of a loop cycle
18
16
  require 'libuv/async' # Provide a threadsafe way to signal the event loop
19
17
  require 'libuv/timer' # High resolution timer
20
18
  require 'libuv/loop' # The libuv reactor or event loop
21
19
  # --
22
20
 
23
- require 'libuv/filesystem' # Async directory manipulation
24
- require 'libuv/fs_event' # Notifies of changes to files and folders as they occur
25
- require 'libuv/prepare' # Called at the end of a loop cycle
26
- require 'libuv/signal' # Used to handle OS signals
27
- require 'libuv/check' # Called before processing events on the loop
28
- require 'libuv/file' # Async file reading and writing
29
- require 'libuv/idle' # Called when there are no events to process
30
- require 'libuv/work' # Provide work to be completed on another thread (thread pool)
31
- require 'libuv/udp' # Communicate over UDP
32
- require 'libuv/dns' # Async DNS lookup
21
+ autoload :FsChecks, 'libuv/mixins/fs_checks' # Common code to check file system results
22
+ autoload :Stream, 'libuv/mixins/stream' # For all libuv streams (tcp, pipes, tty)
23
+ autoload :Net, 'libuv/mixins/net' # Common functions for tcp and udp
24
+
25
+ autoload :Filesystem, 'libuv/filesystem' # Async directory manipulation
26
+ autoload :FSEvent, 'libuv/fs_event' # Notifies of changes to files and folders as they occur
27
+ autoload :Signal, 'libuv/signal' # Used to handle OS signals
28
+ autoload :Check, 'libuv/check' # Called before processing events on the loop
29
+ autoload :File, 'libuv/file' # Async file reading and writing
30
+ autoload :Idle, 'libuv/idle' # Called when there are no events to process
31
+ autoload :Work, 'libuv/work' # Provide work to be completed on another thread (thread pool)
32
+ autoload :UDP, 'libuv/udp' # Communicate over UDP
33
+ autoload :Dns, 'libuv/dns' # Async DNS lookup
33
34
 
34
35
  # Streams
35
- require 'libuv/pipe' # Communicate over Pipes
36
- require 'libuv/tcp' # Communicate over TCP
37
- require 'libuv/tty' # Terminal output
36
+ autoload :Pipe, 'libuv/pipe' # Communicate over Pipes
37
+ autoload :TCP, 'libuv/tcp' # Communicate over TCP
38
+ autoload :TTY, 'libuv/tty' # Terminal output
38
39
 
39
40
 
40
41
  # Returns the number of CPU cores on the host platform
@@ -62,12 +62,20 @@ module Libuv
62
62
  # Create an async call for ending the loop
63
63
  @stop_loop = @loop.async method(:stop_cb)
64
64
  @stop_loop.unref
65
+
66
+ # Libuv can prevent the application shutting down once the main thread has ended
67
+ # The addition of a prepare function prevents this from happening.
68
+ @loop_prep = Libuv::Prepare.new(@loop, method(:noop))
69
+ @loop_prep.unref
70
+ @loop_prep.start
65
71
  end
66
72
 
67
73
 
68
74
  protected
69
75
 
70
76
 
77
+ def noop; end
78
+
71
79
  def stop_cb
72
80
  LOOPS.delete(@reactor_thread)
73
81
  @reactor_thread = nil
@@ -426,9 +434,7 @@ module Libuv
426
434
  # Exposed to allow joining on the thread, when run in a multithreaded environment. Performing other actions on the thread has undefined semantics (read: a dangerous endevor).
427
435
  #
428
436
  # @return [Thread]
429
- def reactor_thread
430
- @reactor_thread
431
- end
437
+ attr_reader :reactor_thread
432
438
 
433
439
  # Tells you whether the Libuv reactor loop is currently running.
434
440
  #
@@ -1,3 +1,3 @@
1
1
  module Libuv
2
- VERSION = '2.0.6'
2
+ VERSION = '2.0.8'
3
3
  end
@@ -9,7 +9,7 @@ describe Libuv::Listener do
9
9
 
10
10
  # These are created by loop objects and are never cleaned up
11
11
  # This is OK as the loops are expected to execute for the life of the application
12
- except = [::Libuv::Async, ::Libuv::Timer]
12
+ except = [::Libuv::Async, ::Libuv::Timer, ::Libuv::Prepare]
13
13
 
14
14
  ObjectSpace.each_object(Class) do |cls|
15
15
  next unless cls.ancestors.include? ::Libuv::Handle
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libuv
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.6
4
+ version: 2.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bulat Shakirzyanov
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-10-11 00:00:00.000000000 Z
12
+ date: 2016-03-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi
@@ -335,6 +335,7 @@ files:
335
335
  - ext/libuv/test/test-default-loop-close.c
336
336
  - ext/libuv/test/test-delayed-accept.c
337
337
  - ext/libuv/test/test-dlerror.c
338
+ - ext/libuv/test/test-eintr-handling.c
338
339
  - ext/libuv/test/test-embed.c
339
340
  - ext/libuv/test/test-emfile.c
340
341
  - ext/libuv/test/test-error.c
@@ -345,6 +346,7 @@ files:
345
346
  - ext/libuv/test/test-get-currentexe.c
346
347
  - ext/libuv/test/test-get-loadavg.c
347
348
  - ext/libuv/test/test-get-memory.c
349
+ - ext/libuv/test/test-get-passwd.c
348
350
  - ext/libuv/test/test-getaddrinfo.c
349
351
  - ext/libuv/test/test-getnameinfo.c
350
352
  - ext/libuv/test/test-getsockname.c
@@ -384,6 +386,7 @@ files:
384
386
  - ext/libuv/test/test-poll-closesocket.c
385
387
  - ext/libuv/test/test-poll.c
386
388
  - ext/libuv/test/test-process-title.c
389
+ - ext/libuv/test/test-queue-foreach-delete.c
387
390
  - ext/libuv/test/test-ref.c
388
391
  - ext/libuv/test/test-run-nowait.c
389
392
  - ext/libuv/test/test-run-once.c
@@ -425,6 +428,7 @@ files:
425
428
  - ext/libuv/test/test-timer-again.c
426
429
  - ext/libuv/test/test-timer-from-check.c
427
430
  - ext/libuv/test/test-timer.c
431
+ - ext/libuv/test/test-tmpdir.c
428
432
  - ext/libuv/test/test-tty.c
429
433
  - ext/libuv/test/test-udp-bind.c
430
434
  - ext/libuv/test/test-udp-create-socket-early.c