Thanks for the suggestion! I get an deserialize error. Not really sure how 
to make a S available on all processes:

using Winston, PyCall, Reactive
@pyimport seabreeze
seabreeze.use("pyseabreeze")
@pyimport seabreeze.spectrometers as sb
devices = sb.list_devices()
S = sb.Spectrometer(devices[1])

To bad really, because that seems like a really nice and easy solution.

On Tuesday, October 13, 2015 at 7:13:42 PM UTC+10, Mohammed El-Beltagy 
wrote:

Short of doing a reimplementation, you could possibly run your python code 
> in another process via a remotecall (as described in the manual 
> http://julia.readthedocs.org/en/latest/manual/parallel-computing/). In 
> that case you REPL would be responsive as the I/O is done in another 
> process. 
>
> On Monday, October 12, 2015 at 10:10:39 PM UTC+2, Yakir Gagnon wrote:
>>
>> I see, thanks for the great explanation! 
>> So there's nothing I can do. Would Escher get around it? I guess I'd need 
>> to implement that python code in Julia...
>> On 12/10/2015 11:34 PM, "Steven G. Johnson" <[email protected]> wrote:
>>
>>>
>>>
>>> On Monday, October 12, 2015 at 1:59:59 AM UTC-4, Yakir Gagnon wrote: 
>>>>
>>>> One important piece of information is the integration time (similar to 
>>>> the shutter speed in a camera): after I set the integration time the 
>>>> spectrometer start sampling the spectra at that frequency. When I try to 
>>>> retrieve the intensities it will spit them out only when one cycle ends. 
>>>> This means that when I try to run the function that retrieves the 
>>>> intensities it can take anything from 0 to integration-time seconds. 
>>>>
>>>> Here's the weird thing: 
>>>> When I run my code the REPL becomes non-responsive for integration-time 
>>>> seconds, so if I try to type some text, the letters get typed in only one 
>>>> letter at an integration-time (note that CPU usage is less than 3%)... 
>>>> But, 
>>>> if I replace the function that retrieves the intensities with some mock 
>>>> function that `sleep`s for a random amount of time and returns a (equally 
>>>> long) vector of random floats, the REPL jitter is gone..! 
>>>>
>>>
>>> Julia I/O functions, and functions like sleep(t), use the libuv library 
>>> for asynchronous cooperative multitasking.  That means that when one task 
>>> is waiting on I/O, another task (e.g. the REPL) can wake up if there is 
>>> something for it to do.
>>>
>>> However, Python I/O does not use libuv, so when the Python I/O task is 
>>> waiting to finish reading something then it just blocks, and nothing else 
>>> in Julia can run.
>>>
>> ​

Reply via email to