rbtrace 0.3.19 → 0.3.20

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 (5) hide show
  1. data/Gemfile.lock +2 -2
  2. data/ext/rbtrace.c +24 -4
  3. data/rbtrace.gemspec +1 -1
  4. metadata +28 -21
  5. checksums.yaml +0 -7
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rbtrace (0.3.18)
4
+ rbtrace (0.3.19)
5
5
  ffi (>= 1.0.6)
6
6
  msgpack (>= 0.4.3)
7
7
  trollop (>= 1.16.2)
@@ -10,7 +10,7 @@ GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
12
  ffi (1.0.11)
13
- msgpack (0.4.6)
13
+ msgpack (0.4.7)
14
14
  trollop (1.16.2)
15
15
 
16
16
  PLATFORMS
data/ext/rbtrace.c CHANGED
@@ -619,6 +619,7 @@ rbtracer_detach()
619
619
  rbtracer.slowcpu = false;
620
620
  rbtracer.gc = false;
621
621
  rbtracer.devmode = false;
622
+ rbtracer.num_calls = 0;
622
623
 
623
624
  int i;
624
625
  for (i=0; i<MAX_TRACERS; i++) {
@@ -1043,7 +1044,20 @@ rbtrace_gc_mark()
1043
1044
  }
1044
1045
  }
1045
1046
 
1046
- static VALUE gc_hook;
1047
+ static VALUE gc_hook, signal_handler_proc;
1048
+
1049
+ static VALUE
1050
+ signal_handler_wrapper(VALUE arg, VALUE ctx)
1051
+ {
1052
+ static int in_signal_handler = 0;
1053
+ if (in_signal_handler) return;
1054
+
1055
+ in_signal_handler++;
1056
+ sigurg(SIGURG);
1057
+ in_signal_handler--;
1058
+
1059
+ return Qnil;
1060
+ }
1047
1061
 
1048
1062
  void
1049
1063
  Init_rbtrace()
@@ -1052,6 +1066,15 @@ Init_rbtrace()
1052
1066
  gc_hook = Data_Wrap_Struct(rb_cObject, rbtrace_gc_mark, NULL, NULL);
1053
1067
  rb_global_variable(&gc_hook);
1054
1068
 
1069
+ // catch signal telling us to read from the msgq
1070
+ #ifdef RUBY_VM
1071
+ signal_handler_proc = rb_proc_new(signal_handler_wrapper, Qnil);
1072
+ rb_global_variable(&signal_handler_proc);
1073
+ rb_funcall(Qnil, rb_intern("trap"), 2, rb_str_new_cstr("URG"), signal_handler_proc);
1074
+ #else
1075
+ signal(SIGURG, sigurg);
1076
+ #endif
1077
+
1055
1078
  // setup msgpack
1056
1079
  rbtracer.sbuf = msgpack_sbuffer_new();
1057
1080
  rbtracer.msgpacker = msgpack_packer_new(rbtracer.sbuf, msgpack_sbuffer_write);
@@ -1059,9 +1082,6 @@ Init_rbtrace()
1059
1082
  // zero out tracer
1060
1083
  memset(&rbtracer.list, 0, sizeof(rbtracer.list));
1061
1084
 
1062
- // catch signal telling us to read from the msgq
1063
- signal(SIGURG, sigurg);
1064
-
1065
1085
  // cleanup the msgq on exit
1066
1086
  atexit(msgq_teardown);
1067
1087
  rb_set_end_proc(ruby_teardown, 0);
data/rbtrace.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'rbtrace'
3
- s.version = '0.3.19'
3
+ s.version = '0.3.20'
4
4
  s.homepage = 'http://github.com/tmm1/rbtrace'
5
5
 
6
6
  s.authors = 'Aman Gupta'
metadata CHANGED
@@ -1,57 +1,64 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbtrace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.19
4
+ prerelease:
5
+ version: 0.3.20
5
6
  platform: ruby
6
7
  authors:
7
8
  - Aman Gupta
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-02-28 00:00:00.000000000 Z
12
+ date: 2013-03-08 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
- name: ffi
15
+ type: :runtime
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - '>='
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: 1.0.6
20
- type: :runtime
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
24
+ none: false
23
25
  requirements:
24
- - - '>='
26
+ - - ! '>='
25
27
  - !ruby/object:Gem::Version
26
28
  version: 1.0.6
29
+ name: ffi
27
30
  - !ruby/object:Gem::Dependency
28
- name: trollop
31
+ type: :runtime
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - '>='
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: 1.16.2
34
- type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
40
+ none: false
37
41
  requirements:
38
- - - '>='
42
+ - - ! '>='
39
43
  - !ruby/object:Gem::Version
40
44
  version: 1.16.2
45
+ name: trollop
41
46
  - !ruby/object:Gem::Dependency
42
- name: msgpack
47
+ type: :runtime
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - '>='
51
+ - - ! '>='
46
52
  - !ruby/object:Gem::Version
47
53
  version: 0.4.3
48
- type: :runtime
49
54
  prerelease: false
50
55
  version_requirements: !ruby/object:Gem::Requirement
56
+ none: false
51
57
  requirements:
52
- - - '>='
58
+ - - ! '>='
53
59
  - !ruby/object:Gem::Version
54
60
  version: 0.4.3
61
+ name: msgpack
55
62
  description: rbtrace shows you method calls happening inside another ruby process
56
63
  in real time.
57
64
  email: aman@tmm1.net
@@ -82,26 +89,26 @@ files:
82
89
  - tracers/unicorn.tracer
83
90
  homepage: http://github.com/tmm1/rbtrace
84
91
  licenses: []
85
- metadata: {}
86
92
  post_install_message:
87
93
  rdoc_options: []
88
94
  require_paths:
89
95
  - lib
90
96
  required_ruby_version: !ruby/object:Gem::Requirement
97
+ none: false
91
98
  requirements:
92
- - - '>='
99
+ - - ! '>='
93
100
  - !ruby/object:Gem::Version
94
101
  version: '0'
95
102
  required_rubygems_version: !ruby/object:Gem::Requirement
103
+ none: false
96
104
  requirements:
97
- - - '>='
105
+ - - ! '>='
98
106
  - !ruby/object:Gem::Version
99
107
  version: '0'
100
108
  requirements: []
101
109
  rubyforge_project:
102
- rubygems_version: 2.0.0
110
+ rubygems_version: 1.8.23
103
111
  signing_key:
104
- specification_version: 4
105
- summary: 'rbtrace: like strace but for ruby code'
112
+ specification_version: 3
113
+ summary: ! 'rbtrace: like strace but for ruby code'
106
114
  test_files: []
107
- has_rdoc:
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: ae8cd64167eb2f3275caf66175c00370018c43fe
4
- data.tar.gz: 8d389f4891f37cbbb9e93c4e623542ba213bd88c
5
- SHA512:
6
- metadata.gz: 54aef3a098fb9be86926238e33fe47fea73d64f89aa3762a282ebf71d6bdb7010eb40b51afe3738b79852eacd1fa2387e4e8795d503ffd878e1be44eeeeb1470
7
- data.tar.gz: 115be7ca55f189ad6a1a5dfcc0f84346752141ab6a9b8dab3b42ed545af78d72261d92411778599143aa2b6d5a833ca90756572133cc7e26bc3de7f9ce5ec56c