Monday, April 9, 2018

Re: [Discuss-gnuradio] A question about source code of the "File Source" Block

This happens because open() can be executed in a different thread than
work(). It also keeps the system call ::open() outside the work()
thread, which can help performance a little.

As Marcus mentioned in another thread, a more elegant way of doing
things would be to have message-based commands to blocks, instead of
functions, for control. Messages are processed in the block thread, so
this code could be simplified a little (maybe).

On 04/08/2018 11:05 PM, ruiy wrote:
> Hello
>
> I am reading the source code of the "File Source" Block and have a
> question about the source code. In the source code, it firstly opens
> file by using the d_new_fp variable, then update by using the d_fp
> variable to replace it. Why not using the d_fp variable to open the file
> directly instead of replacing d_new_fp with d_fp. It confuses me. I will
> appreciate it If anyone knows that.
>
> the source file including cpp and h is following:
>
> file_source_impl.cc
>
> /* -*- c++ -*- */
> /*
> * Copyright 2012 Free Software Foundation, Inc.
> *
> * This file is part of GNU Radio
> *
> * GNU Radio is free software; you can redistribute it and/or modify
> * it under the terms of the GNU General Public License as published by
> * the Free Software Foundation; either version 3, or (at your option)
> * any later version.
> *
> * GNU Radio is distributed in the hope that it will be useful,
> * but WITHOUT ANY WARRANTY; without even the implied warranty of
> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> * GNU General Public License for more details.
> *
> * You should have received a copy of the GNU General Public License
> * along with GNU Radio; see the file COPYING. If not, write to
> * the Free Software Foundation, Inc., 51 Franklin Street,
> * Boston, MA 02110-1301, USA.
> */
>
> #ifdef HAVE_CONFIG_H
> #include "config.h"
>

No comments:

Post a Comment