So.. I have this component Setutl.
which does a bunch of handy things that 4D's native set operations do 
not do, for example being able to ask, and get an answer to:
- Which table does this set belong to
- What set(s) exist for a specified table

As the component stands it is thread safe (I believe).
However, I just ran into a problem with this component.
IP sets.

Internally, Setutl, stores set and table information in process arrays.
This is all fine, and works for process and local sets. BUT this fails 
for IP sets.

Ex: (using Setutl)
Process 1 - create IP set <>A, 20 records
Process 2 - test record count in set <>A - error set does not exist.

I do not want to make the entire component Thread Unsafe to handle IP 
sets, even though they themselves are thread unsafe.

So far the only resolutions, to be able to manage IP sets, I have been 
able to come up with are:
- IP arrays for (at a minimum) the IP sets 
  -- This makes the entire component not thread safe.
- Separate process to manage (at a minimum) IP sets, and use Set/Get 
Process Variable
  -- This makes the entire component not thread safe.
- Write a file to disk which contains IP set information
  -- speed issues, with disk access for IP sets.
  -- Read/write collisions trying to access the disk file from multiple 

The only solution I see is writing a file to disk to store IP set 
information. This will work, but in my opinion leave something to be 

Anyone have any other idea(s)?


Gas is for washing parts
Alcohol is for drinkin'
Nitromethane is for racing 
4D Internet Users Group (4D iNUG)

Reply via email to