Dag Sverre Seljebotn skrev:
> cdef extern from *:
>      ctypedef int vint "volatile int"
>
> What you said is: typedef "int" as "vint" Cython-side and "volatile int" 
> C-side.
>
>   

Right...  I see that it works :-)

Hm... that remids me: should we add a "volatile" keyword to the buffer 
constructor as well? It would work like "readonly", except that the 
content of the buffer is declared volatile. 

Volatile is useful if the buffer is filled with data from some hardware 
interrupt. Volatile is also be useful when multiple threads are reading 
and writing to the same buffer.

I have use for this when reading 16 bit data from an array of 32 ADCs, 
sampling at 48 kHz:

   cdef np.ndarray[np.int16_t, ndim=2, mode="c", volatile=True] adc_buffer

   adc_buffer = np.zeros((48000,32), dtype=np.int16) # filled from 
hardware interrupt
                                                     # once every second


Sturla Molden




_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to