Subject: Re: [ruby-ffi] Re: Null Pointer Issue? Am I Racing with the Garbage Collector? |
From: Wayne Meissner |
Date: 11/13/10 7:09 AM |
To: ruby-ffi@googlegroups.com |
I think those changes fixing things is purely coincidental. I think the reason why ffi from github was raising errors, was because the enum parameter handling was slightly broken (it only accepted enum constants, not ints), so update, re-install it and see if it works now. On 13 November 2010 08:50, Scott Gonyea <gonyea@gmail.com> wrote:
https://github.com/aitrus/curl_ffi/commit/3e72173c9f60238f855c6e23f54e553ad7da3608 And here's what I did in StreamlyFFI: https://github.com/aitrus/streamly_ffi/commit/48568e7792cd7bc8a300d0fac99238799364c374 I need to go back and remove my frantic use of ".dup" and see what the effect is. I should probably walk back my changes to see where it went right. Scott On Nov 11, 11:09 pm, Scott Gonyea <gon...@gmail.com> wrote:Well that's weird. Now it's all working in MRI. I'm not sure which of my changes helped, or if I sleep-walked last night after one of my lobes declared a coup. Here's what I did with CurlFFI:<gon...@gmail.com> wrote:Interesting. I used JRuby (1.5.3) and the ffi gem (0.6.3 / rubygems.org). Works just peachy. I ran it at 50 and then 100 iterations. Everything seems to get along. sgonyea@skg:~/Sites/gsolr$ ruby bench.rbhttp://toddler.tomkittens.com:8080/solr "hi" Rehearsal ------------------------------------ GSolr 4.626000 0.000000 4.626000 ( 4.626000) RSolr 9.435000 0.000000 9.435000 ( 9.436000) -------------------------- total: 14.061000sec user system total real GSolr 3.523000 0.000000 3.523000 ( 3.523000) RSolr 8.903000 0.000000 8.903000 ( 8.903000) sgonyea@skg:~/Sites/gsolr$ ruby bench.rbhttp://toddler.tomkittens.com:8080/solr "hi" Rehearsal ------------------------------------ GSolr 8.134000 0.000000 8.134000 ( 8.134000) RSolr 18.710000 0.000000 18.710000 ( 18.710000) -------------------------- total: 26.844000sec user system total real GSolr 6.805000 0.000000 6.805000 ( 6.805000) RSolr 17.557000 0.000000 17.557000 ( 17.557000) Scott On Nov 11, 11:01 pm, Scott GonyeaStrange. I replied in my e-mail, but it didn't post. Hoping it wasn't plugged up in Google somewhere. Here's what I wrote:
I'm pretty sure it does. I ran into another issue, while using the FFI from Github:
https://gist.github.com/673816
I'm checking the values, all along the way, and I'm not handing it any nils, but it won't believe me. The ffi 0.6.3 gem won't complain about this (but it will blow up at a few spots).
:( Thank you very much, for your help.Sigh
Scott
<wmeiss...@gmail.com> wrote:On Nov 11, 10:21 pm, Wayne Meissner
Thats interesting.
Does curl use threads internally? If so, build the ffi gem from github and try that. Earlier versions don't deal well with callbacks coming from non-ruby threads.
Also try running it with JRuby. It handles threads a lot better.
<gon...@gmail.com> wrote:On 12 November 2010 15:25, Scott Gonyea
https://gist.github.com/673753
That will show you the script I'm running, the gdb backtrace, and ruby- prof (if that helps at all). I basically was benchmarking my library with the one I started branching from. It's all good, until I start running a whole lot of iterations. I made some changes, which seems to have made it less frequent... until I up the number of iterations.
https://github.com/aitrus/curl_ffi/commit/99a231aea24b2d7d63bccaa5c23...
That was the one fix. This GSolr junk of mine uses StreamlyFFI and CurlFFI:
https://github.com/aitrus/streamly_ffi CurlFFI:https://github.com/aitrus/curl_ffiStreamlyFFI:
Scott