Since C was invented, there have been about 1.23 bazillion different guaranteed replacements for it. All have fallen by the wayside except for C++. I'm sure that Go is different, however (where's that damned "I'm being a sarcastic ass" emoticon, again?).

Why does program B have to lock the file?

Why not just have program A pipe the file to B, or produce the file and then pipe "It's ready" to B? With the right program structure, either of those could be done from the command line:

"Program A" | "Program B"

(I suspect you have a good reason, but I'm interested in hearing it).

On 2017-11-24 09:04, michael wrote:
http://condor.cc.ku.edu/~grobe/docs/intro-MPI-C.shtml

I want to use message passing interface in C programs running on
Raspberry Pi 3's running Raspbian Stretch, but I don't know which
package to install
via apt for mpi.h. There is the question of whether or not I can catch
on to how mpi works quickly.  I have a hard December 12th deadline to
make three
C programs work at least decently together.  Program A produces a PNG
file, program B tries to lock that file and display it.  There are a
few cases to
consider.  Case 1, the file does not exist, Case 2, the file exists
but is not completely written out, Case 3, the file is written out and
ready,
Case 4, file exists but it is not a good PNG file.  The programs
currently try to lock the file in question, but you don't want to lock
on Cases 1, 2,
or 4.  Best if A can signal B to process the file when the file is
ready.  Signalling is preferable because the file is being frequently
replaced by
program A.

A separate issue, program A needs to start before program B because
program B needs the file that A creates.  Thoughts on how to fix
program B so that
it will sleep and not lock the file before A has created it are very
much appreciated.  One caveat, B should print an error message if A
doesn't get
the file made in 12-20 seconds.  The only thought I have is can a C
program check for a specific process by name and sleep if that process
can't be
found?  Program B should NEVER run in the absence of program A for
more than a few seconds and B should wait for no longer than twenty
seconds to let
A complete production of the PNG file it needs.

A friend and professional programmer recommends that the project be
redone in the Go programming language.  Thoughts on using Go, sticking
with C, or
switching to C++ are very much appreciated.  OpenCV is C++ based by
the way and we are doing computer vision processing in this project.
The C
language predates multi core programs that run multiple threads and
pass information via multiple processes and multiple files.  The PNG
file is
written to an NFS 4 share by the way as well, so there is a networking
component involved.  I don't have much time to figure out the
networking part
let alone change it sadly.  When you have multiple projectors calling
one controller, that gets to be a lot for that controller.  Pi 3's are
limited.
What tools should I be using to troubleshoot the controller and make
sure it isn't being overloaded?  I want to answer this question
accurately, "How
many projectors can one controller support?"  If the system isn't fast
enough, it won't be used and everyone at Apex will be put out of work
:-(
_______________________________________________
PLUG mailing list
PLUG@pdxlinux.org
http://lists.pdxlinux.org/mailman/listinfo/plug

_______________________________________________
PLUG mailing list
PLUG@pdxlinux.org
http://lists.pdxlinux.org/mailman/listinfo/plug

Reply via email to