[Glass] Problem with #fork and #performOnServer?

Mariano Martinez Peck via Glass glass at lists.gemtalksystems.com
Mon Jul 3 12:06:05 PDT 2017


Hi guys,

I am trying to accomplish something easy: I have a main gem that iterates
some "reports" and exports each report into a PDF by calling a unix lib.
This PDF export takes some seconds. So what I wanted to do is something
like this pseudo code:

self reports do: [:aReport | [  System performOnServer: (self
pdfExportStringFor: aReport)  ] fork ].

What I wanted to do with that is that each unix process for the PDF tool
was executed on separate CPU cores than the GEM (my current GemStone
license does allow all cores). However, I am not sure I am getting that
behavior. It looks like I am still using 1 core and being sequential.

Finally, I couldn't even reproduce a single test case with that I had in
mind:

1 to: 6 do: [:index |
[ System performOnServer: 'tar -zcvf test', index asString, '.tar.gz
/home/quuve/GsDevKit_home/server/stones/xxx_333/extents' ] fork.
].

I would have expected those lines to burn my server and use 6 cpu cores at
100%. But no, nothing happens. What is funny is that if I call the very
same line without the #fork I do get the 100% CPU process:

System performOnServer: 'tar -zcvf test', 1 asString, '.tar.gz
/home/quuve/GsDevKit_home/server/stones/debrisDemo_333/extents'

So....is there something I am not seeing with #fork and #performOnServer: ?

Thanks a lot in advance,

-- 
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20170703/e13ca6cf/attachment.html>


More information about the Glass mailing list