On 11/26/2012 10:11 PM, Jose Torres Diaz wrote: > Hi All, > > I'm still doing some blocks using message passing technique. Now, I'm > working with blob passing downstream, however, my code blocks if I run a > infinite loop. Before, I had some issues with memory blowing out (using PMT > dictionaries), but using the pmt manager solves the problem. > > My code is quite easy, but it does not runs infinitely in E110. > > BLOCK 1 (Source of Blobs) -------- > BLOCK 2 (Count the number of Blobs > received) > > *BLOCK 1 - Source:* > This is the source block and it is similar to stream to blob. I'm creating > a pool of 17 blobs with size 1500 bytes. I added some data into it and then > posting downstream. > > *BLOCK 2 - Counter: > *It counts the number of blobs received. > > Running this in the E110 does it only 1000 times (in an infinite loop). I > checked the memory usage and it looks stable all the time. I read in > https://github.com/guruofquality/grextras/wiki: > > "Normally, a PMT is created and passed to a downstream consumer. When all > downstream consumers delete their references to the PMT, the object is > deconstructed and freed back into nothingness. With the PMT manager, rather > than being deconstructed, the PMT will return to the manager, where the > user can reuse the deleted PMT without re-allocation." > > When it is mention the consumer deleting their reference to the PMT, should > I do it into my work function in BLOCK 2? or is it done automatically by > the manager?.
The PMTs are reference counted. When BLOCK2 work() function consumes the input, the scheduler will delete the PMT references in BLOCK2. Then, the manager see a reference count of 1, allowing BLOCK1 to use the allocation again. So its automatic. -josh > > Thanks for your help and directions, > > Regards , > > Jose. > > > > _______________________________________________ > Discuss-gnuradio mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > _______________________________________________ Discuss-gnuradio mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
