async_data_provider 0.0.1 → 0.0.2

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/async_data_provider.rb +13 -6
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0e32d82650e6a12ff5d34bc6eeac50dd67802c9c
4
- data.tar.gz: 831d40dda1a94dcfc3e72262aa739f894d4dacce
3
+ metadata.gz: e3394e4cfecdfd00d8e390fa82e5f51537c7d95d
4
+ data.tar.gz: 73322ce2186f02ffcb0c1e8138a0893cd15b34e5
5
5
  SHA512:
6
- metadata.gz: c726a969322d27babed14407dbd0dc978f34da66fd55e1c99cbfb686bd6223f479dd7bb1328ab859468188b1e2f4dd31c6d7ab2f15e95c9a843c47515b022cd8
7
- data.tar.gz: 552193bab491fd4614d88644fd66ee497f29ec4079a71b2f68776c23397dfd2a65c6ec32eb6a64b0c72bcd3c5b1cd21850def9faa44d83ddfc3944b36c349371
6
+ metadata.gz: 344cb7af1df53c454297f96efb6bb466fcb1e4584340b0c78287508896d3ac90e1e7a61a08f25580fa895883ac15534c6a7fb4cd79be0a3ae6bd62554dfea81a
7
+ data.tar.gz: 2e7c796f14578c26c4e35f544e9ec3ec15081ecc69c6f68ba8717594c8a0c1984f2448a05e44ae987ab65d9fc1dd4cd02bfb90fe34b894e8f8df3a7824daf6ff
@@ -28,23 +28,30 @@ class AsyncDataProvider
28
28
  include Singleton
29
29
 
30
30
  def initialize
31
- @last_time_retrieved = nil
32
- @time_retrieve_interval = "must be implemented"
33
- @mutex = Mutex.new
34
- @data = nil
31
+ @last_time_retrieved = nil
32
+ @time_retrieve_interval = "must be implemented"
33
+ @mutex = Mutex.new
34
+ @data = nil
35
+
36
+ # Thread properties
37
+ @thread_abort_on_exception = true
38
+ @thread_priority = nil
35
39
  end
40
+ attr_accessor :thread_abort_on_exception, :thread_priority
36
41
 
37
42
  def get_data(**args)
38
43
  if(@last_time_retrieved.nil? || (Time.now - @last_time_retrieved >= @time_retrieve_interval))
39
44
  @last_time_retrieved = Time.now
40
45
 
41
- Thread.new do
46
+ t = Thread.new do
42
47
  if(@mutex.try_lock)
43
48
  @data = update_data(args)
44
49
  @last_time_retrieved = Time.now
45
50
  @mutex.unlock
46
51
  end
47
- end.abort_on_exception = true
52
+ end
53
+ t.abort_on_exception = @thread_abort_on_exception
54
+ t.priority = @thread_priority if @thread_priority
48
55
  end
49
56
 
50
57
  return @data
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async_data_provider
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Sykes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-13 00:00:00.000000000 Z
11
+ date: 2016-11-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Allows the user to update data in the background on a schedule and return
14
14
  the most recent data