discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] Block continues after EOF


From: Martin Luelf
Subject: [Discuss-gnuradio] Block continues after EOF
Date: Tue, 19 Feb 2013 19:00:57 +0100
User-agent: SquirrelMail/1.4.22

Dear List,

I have another problem with stopping my C++ block. My block receives blobs
of bytes as messages over the new message passing interface and outputs
them as a byte stream. At some place I receive an EOF message, set a flag
and continue to empty my buffer in the work method. Once the buffer is
empty I signal EOF to the flowgraph by returning -1 from general_work.
However after that my work function keeps getting called.

My general_work function looks like this:

int general_work(int noutput_items, gr_vector_int& ninput_items,
gr_vector_const_void_star& input_items, gr_vector_void_star& output_items)
{
        printf("work function called\n");

        if(d_stop && d_queue.size() == 0) {
                // signal EOF
                printf("Signal EOF\n");
                return -1;
        }

        int num_out;
        // Generate the actual output
        // ...

        return num_out;
}

And the output I get looks like this:
work function called
work function called
work function called
Signal EOF
work function called
work function called
work function called
work function called
...
Until I stop the whole flowgraph with Ctrl+C

What am I missing here? If I understood correctly the work function should
not be called anymore after signalling EOF, since there is by definition
of EOF, nothing more to get.

Yours
Martin




reply via email to

[Prev in Thread] Current Thread [Next in Thread]