Michael - I greatly appreciate the response, and yes, your post was helpful.
Hopefully I'll come back with some good news before too long =) Cheers, Ben On Fri, Jan 28, 2011 at 10:07 PM, Michael Dickens <m...@alum.mit.edu> wrote: > On Jan 28, 2011, at 2:23 PM, Ben Hilburn wrote: >> As I understand it, there is code in the GNURadio scheduler stuff that >> manages block scheduling, to some degree. >> >> I'm aware of the kernel's role in switching between the threads >> themselves, but I was under the impression that block scheduling, was >> at least in some part, influenced by GNU Radio. >> >> If this is incorrect though, someone please correct me! > > Yes, this is true, Ben. The OS handles the basics of thread execution, but > the TPB scheduler does handle "when" a block's "general_work" method is > actually called. See gnuradio-core/src/lib/runtime, files > "gr_tpb_thread_body.cc" (which for the most part is a simple loop calling the > block executor and neighbor blocks when things change) and > "gr_block_executor.cc" (which is where the meat of what you're looking for > it, I believe). For the latter, you can set ENABLE_LOGGING to 1, which > should give you an idea of what the "decision process" is. > > I think the general idea goes roughly like this: When data in a given buffer > changes (whether through generated or consumed items), each block that is > associated with that buffer checks to see if there is "enough" input data and > output buffer space for a "reasonable sized" computation. If not, then go > back and wait for buffers to change; if so, then do the computation (call > "general_work"). You'll need to look through the code to determine what > "enough" and "reasonable sized" mean -- looking at the debug log might help > as well. > > It's been a long time since I've thought about these algorithms, so hopefully > the above is reasonably correct. And, I hope this helps! - MLD > > _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio