async_data_provider 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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