Skip to content

Conversation

@pnappa
Copy link
Owner

@pnappa pnappa commented Jan 29, 2019

Let's merge the couple new style functions in. This removes the async & process object, but these'll come soon.

It can pipe to new processes, but not sure if that's working...
the process args were populated via temporary stack variables
(intialiser lists), so having two processes created caused process
arguments to overwrite each other.
One currently doesn't pass - it doesn't fail, mind you, but the test
never terminates. A read that is happening in one of the tests is
blocking, but it is reliant on the input of the previous process.

Perhaps, I modify it that if there isn't a line immediately, it
recursively requests a line from the parent process; this isn't neat and
is prone to lockup either way.

I also added a buffer to the stdout too, as some might build up in a
process that is piped to, and not read frequently. Unfortunately, with
that addition comes another problem - if the line isn't read explicitly
(currently only via >>), the functors DO get called, but the buffer is
never empties and is increasingly filled up.

I also wrote a new testing program - it simply out puts a lot of data,
so that we can test the pipe congestion better. I just wrote this one
because we're gonna start writing the processes that are invoked from
the testing program from scratch - enabling the tests to be run
cross-platform.
Using operator>> or .read is prohibited for processes that have
processes/files to output to, or if they have a functor to execute.

The reason is to avoid massive memory increases for those who don't need
the output, and only wish to use a functor.

I need to fix the tests so they compile however. Tomorrow's job!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants