× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Thanks for the info. My interest in threading in RPG is rather general but also helps with using ILEastic.

Best regards

Mihael


On 15.03.19 09:10, Niels Liisberg wrote:
Hi Mihael,

Also notice how you use it: If you call "not treadsafe" stuff like old RPG
programs, some CL commands, where you create temporary stuff in QTEMP etc.
- The you HAVE TO use *SERIALIZED. What it does is simply making a lock
that will remain locked until the procedure terminates - allowing you to
make all the non-thread safe stuff.

The *CONCURRENT is just giving you a global memory layer for each thread so
the code is reentrant without you have to do anything - Here you CAN NOT
call "not thread safe" stuff as described above.

Btw. - Are you asking because you are beginning to make applications in
ILEastic ? :)


On Thu, Mar 14, 2019 at 8:58 PM Mihael Schmidt <mihael@xxxxxxxxxxxxxx>
wrote:

Thanks a lot for all the feedback. It greatly helped in making a decision.

I found that the object size does not increase that much in my case, 20kb.

I will compile all necessary programs with thread(*concurrent).

Best regards

Mihael


On 13.03.19 16:25, Barbara Morris wrote:
On 2019-03-12 9:21 PM, Scott Klement wrote:
Hi Mihael,

Years ago when this feature came out, I was told not to use
THREAD(*CONCURRENT) unless I needed it because it adds overhead. I
don't remember all of the specifics, but I think it does stuff like
create mutexes to make variables thread safe, duplicate all of the
static variables to ensure each thread has their own copy, and other
stuff.

It's THREAD(*SERIALIZE) that creates mutexes.

THREAD(*CONCURRENT) just gives you separate static storage for each
thread. Mutexes are only involved if you code the SERIALIZE keyword on
a particular procedure.

I don't know how much performance overhead there is for having
separate static storage for each thread, but I assume it would only
affect the time for thread-creation.

--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.com


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.