Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6768783
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T15:06:54+00:00 2026-05-26T15:06:54+00:00

I have one process that’s gathering data in real time and another process that’s

  • 0

I have one process that’s gathering data in real time and another process that’s plotting it. The two processes are connected by a pipe, with the data acquisition process feeding the data plotting process.

I value the speed of the data acquisition part more than the reliability of the plotting part. A quick skim shows that the default behavior in a pipe is for the writing and reading ends of a pipe to exhibit blocking behavior, if the partner process is slower. This is bad because the data acquisition process can wait on the plotting process.

Is there a way to have a shell pipe be nonblocking, a la C’s O_NONBLOCK? I don’t care if one data point doesn’t get plotted because it gets overwritten by a newer point…

EDIT: Actually, I think the pipe buffer is large enough to hold data acquisition process’s output without the plotting part immediately needing to process it.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T15:06:54+00:00Added an answer on May 26, 2026 at 3:06 pm

    If the data acquisition process needs to run unfettered by the plotting process, you need a different structure than a pipe connecting the two – or you need an extra process in the middle that can discard old data points that have not yet been sent to the plotter.

    Conceptually:

    +-------------+    +------------+    +-------+
    | Acquisition |--->|Holding Tank|--->|Plotter|
    +-------------+    +------------+    +-------+
    

    The ‘holding tank’ can be using select() or a similar call on its input and output descriptors, and can hold a finite quantity of data points. When a new point arrives from the acquisition process, if its holding tank is full, it can discard the oldest point and add the new one in its place. If there is space in the plotters input, it can write a new data point to the plotter. Meanwhile, the acquisition process can run flat out (as long as the holding tank never blocks it), and the plotter can run flat out too. These three processes are all connected by pipes. None of the pipes is run as a non-blocking operation.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have an assembly that may be used by more than one process at
We have a vxWorks design which requires one task to process messages from two
i have a process to move rows from one database to another. Because of
I have two completely different forms in one template. How to process them in
I have moved my iPhone app from one machine to another. In the process
I have one java process starting another java process with JMX support enabled in
I have a command line process that needs to use code in one of
I have a one-time process (hashing all our user passwords) written using datasets. The
I have one worker role that throws data into around 10 queues that need
i have one php file which process adding of record in Database fro array.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.