Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^3: Need to create a SCSI monitoring child process.

by McA (Curate)
on May 17, 2013 at 01:42 UTC ( #1033933=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Need to create a SCSI monitoring child process.
in thread Need to create a SCSI monitoring child process.

Hi,

what does blocking mean in your context?

Let's asume the following: You have a child process which scans the scsi bus regularly (e.g. lsscsi) and puts this information into a array of hashes which gets serialized into a file (real file on the file system or shared memory segment). The main program (tk) would try to get a read lock on that file. If it doesn't get it, it continues the event loop (showing the probably old information). If it gets the lock than it reads the information (which should be fast either on a real file or shared memeory (which should be faster)) and diplays it.

Assumimg communication is done via shared memory, I would expect that the interchange of information between the two processes (gathering information about scsi and reading this information) is done quikly and therefore more or less without blocking.

Best regards
McA


Comment on Re^3: Need to create a SCSI monitoring child process.
Re^4: Need to create a SCSI monitoring child process.
by LivingDust (Novice) on May 17, 2013 at 15:56 UTC

    Maybe I am missing something. What you suggest works if the main program has a loop that is monitoring this shared memory block (or file). I know there are loops like this that are constantly monitoring the location of the mouse cursor. You can see the display change when the cursor is over a widget. So I know what I want is possible. There are already files on the Linux system that are only present when a drive is inserted. My main program could detect the presence or absence of these files. Or it could do a system query of the SCSI bus (there are lots of system commands to choose from). But what I want is that this subroutine is always running with a sleep timer to recheck for the presence of these files or to re-issue the system command.

    If I don't fork this subroutine, then I never return from the subroutine and my windows never update. But if I fork a process, can my subroutine update global variables in my main process? Is this something I can do in Perl? Or do I need to go to a different language?

    There are only 10 types of people in this world... those who understand binary, and those who don't.

      Hi,

      sorry for answering so late. I've just seen your follow up question. Do you still have open questions concerning this thread?

      Best regards
      McA

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1033933]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (11)
As of 2014-10-21 16:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (106 votes), past polls