rbtrace 0.3.19 → 0.3.20

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