I'm writing a block that requires a large amount of data to be processed
in one iteration of the work function. If I call set_output_multiple()
with 8100 * 130 = 1053000 items (of gr_complex), I get the following error:
gr::vmcircbuf_sysv_shm: shmget(1): Invalid argument
gr::vmcircbuf_sysv_shm: shmget(1): Invalid argument
gr::vmcircbuf_sysv_shm: shmget(1): Invalid argument
gr::buffer::allocate_buffer: failed to allocate buffer of size 16456 KB
gr::vmcircbuf_sysv_shm: shmget(1): Invalid argument
gr::vmcircbuf_sysv_shm: shmget(1): Invalid argument
gr::vmcircbuf_sysv_shm: shmget(1): Invalid argument
gr::buffer::allocate_buffer: failed to allocate buffer of size 16456 KB
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
I realize that 16 Megabytes is a little large, but not astronomical.
The set_output_multiple() function does work fine with 8100 * 129
= 1044900 items (of gr_complex).
Is this some hard limitation in the shared memory library, or can it be
overridden somehow?
best regards,
Ron
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio