Thanks to everyone for their help !
As it turned out, the reason I needed the parallel threads in the first
place was due to the execution speed of 3.x. Some preliminary functions
took so long to execute in 3.x that I had to control when my selection
userobjects were available to the user. The speed enhancements of compiled
mode, allow me to have my preliminary functions and all of my selection
userobjects in their own threads.
So what initially appeared to be a problem caused by the quest for speed in
4.0, actually fixed a problem caused by the lack of speed in 3.x.
Thanks Again
Steven Timian
stimian@ara.com
(802) 763 - 8349 Ext 16 phone
(802) 763 - 8283 fax
Applied Research Associates
New England Division
RR1 Box 120A
South Royalton, VT 05068
from: Greg Goebel / HP-MXD
gvg@lvld.hp.com / 970-679-3030 / FAX 970-679-5971
to: Steve Timian / VRf
date: Friday, 23 May 1997 1635 MDT
Sir:
This is another example of the fact that VEE 4.0 won't timeslice between
parallel paths in the same thread.
However, since it does timeslice between different threads, all you have to
do is separate the two UserObjects into different threads and it will work
OK.
If you have more questions, let us know.
--------------------------------- cut here ----------------------------------
> I developed a program under V3.2 that calls a user function which contains a
> number of user objects. Each of these user objects contains a pull down
> menu which has the wait for input flag set. Under 3.2, the program will run
> the first user object until it hits the pull down menu and then waits for
> user input. At that point, the second user object will execute up to the
> same point and wait for user input. Under 4.0 the first user object
> executes up to the pull down menu, then all execution pauses waiting or user
> input. The second user object never gets executed at all.
>
> I have attached an example of my problem. If you run under 3.2
> compatibility mode it runs fine. Compiled mode does not. You can verify
> the results by looking at the global variables Global1A and Global2A. They
> should both get set. Has anyone else had similar problems and if so have
> you found any solutions to the problem.
>
> Your help is greatly appreciated.
>
> Steve
>
>
>
>
>
>
>
> --=====================_864434333==_
> Content-Type: text/plain; charset="us-ascii"
> Content-Disposition: attachment; filename="40test.vee"
>
> (saveFormat "2.3")
> (date "Fri 23/May/1997 16:36:55 ")
> (veerev "4.0")
> (platform "PC")
> (execMode fast)
> (filterNAN 0)
> (workspaceStackingOrder M F1)
> (SaveCF no)
> (device 0 ROOTCONTEXT
> (properties
> (trigMode deg)
> (nextID 4)
> (popupTitleText "Untitled")
> (popupMoveable 1))
> (deviceList
> (UserFunctions
> (nextID 2)
> (context 1
> (properties
> (name "UserFunction1")
> (trigMode deg)
> (nextID 7)
> (popupMoveable 1))
> (deviceList
> (device 2 CONTEXT
> (properties
> (name "Select 2")
> (trigMode deg)
> (nextID 8)
> (popupTitleText "UserObject")
> (popupMoveable 1))
> (deviceList
> (device 0 ENUMCONSTANT
> (properties
> (name "Drop-Down List")
> (waitForEvent 1))
> (interface
> (output 1
> (name "Enum")
> (lock name constraints))
> (output 2
> (name "Ordinal")
> (lock name constraints)))
> (implementation
> (value Enum
> (values
> ("Item 1" 0)
> ("Item 2" 1)
> ("Item 3" 2))
> (data "Item 3"))
> (initValue Text
> (data "Item 1"))))
> (device 1 TOGLOBAL
> (properties
> (globalName "global2B"))
> (interface
> (input 1
> (name "Data")
> (tag "Data"))))
> (device 2 REPEATUNTILBREAK
> (interface
> (output 1
> (name "Continuous")
> (lock name constraints))))
> (device 6 CONSTANT
> (properties
> (name "Integer"))
> (interface
> (output 1
> (name "Int32")
> (lock name constraints)))
> (implementation
> (value Int32
> (data 0))
> (initValue Int32
> (data 0))))
> (device 7 TOGLOBAL
> (properties
> (globalName "global2A"))
> (interface
> (input 1
> (name "Data")
> (tag "Data"))))
> (configuration
> (connect D2:1 D0:0)
> (connect D0:1 D1:1)
> (connect D3:0 D2:0)
> (connect D3:1 D4:1)))
> (contextCarrier
> (active detail)
> (panel
> (extent 308 178)
> (widget 0 detail
> (relativeOrigin 10 20)
> (title on)
> (borderStyle flat)
> (extent 142 25)
> (format dropDown)))
> (detail
> (extent 428 322)
> (anchorPt 0 0)
> (configuration
> (devCarrierFor 0
> (active open)
> (icon)
> (open
> (extent 142 25)
> (format dropDown))
> (pinCenter 110 130))
> (devCarrierFor 1
> (active open)
> (icon)
> (open
> (extent 81 53))
> (terminals on)
> (pinCenter 305 220))
> (devCarrierFor 2
> (active icon)
> (icon
> (extent 74 52)
> (iconImage "loop.icn"))
> (open)
> (terminals on)
> (pinCenter 40 60))
> (devCarrierFor 6
> (active open)
> (icon)
> (open
> (extent 84 30)
> (showFormat int))
> (pinCenter 150 30))
> (devCarrierFor 7
> (active open)
> (icon)
> (open
> (extent 81 53))
> (terminals on)
> (pinCenter 335 40))
> (connect D2:1 D0:0
> (points 3 79 60 110 60 110 97))
> (connect D0:1 D1:1
> (points 4 183 120 200 120 200 220 222 220))
> (connect D3:0 D2:0
> (points 6 150 47 150 70 100 70 100 10 40 10 40 31))
> (connect D3:1 D4:1
> (points 4 194 30 210 30 210 40 252 40)))
> (stackingOrder 1 2 0 3 4))))
> (device 3 CONSTANT
> (properties
> (name "Integer"))
> (interface
> (output 1
> (name "Int32")
> (lock name constraints)))
> (implementation
> (value Int32
> (data 0))
> (initValue Int32
> (data 0))))
> (device 4 CONFIRM25
> (interface
> (output 1
> (name "Go")
> (lock name constraints)))
> (implementation))
> (device 5 EXITCONTEXT)
> (device 6 CONTEXT
> (properties
> (name "Select 1")
> (trigMode deg)
> (nextID 8)
> (popupTitleText "UserObject")
> (popupMoveable 1))
> (deviceList
> (device 0 ENUMCONSTANT
> (properties
> (name "Drop-Down List")
> (waitForEvent 1))
> (interface
> (output 1
> (name "Enum")
> (lock name constraints))
> (output 2
> (name "Ordinal")
> (lock name constraints)))
> (implementation
> (value Enum
> (values
> ("Item 1" 0)
> ("Item 2" 1)
> ("Item 3" 2))
> (data "Item 2"))
> (initValue Text
> (data "Item 1"))))
> (device 1 TOGLOBAL
> (properties
> (globalName "global1B"))
> (interface
> (input 1
> (name "Data")
> (tag "Data"))))
> (device 2 REPEATUNTILBREAK
> (interface
> (output 1
> (name "Continuous")
> (lock name constraints))))
> (device 6 CONSTANT
> (properties
> (name "Integer"))
> (interface
> (output 1
> (name "Int32")
> (lock name constraints)))
> (implementation
> (value Int32
> (data 0))
> (initValue Int32
> (data 0))))
> (device 7 TOGLOBAL
> (properties
> (globalName "global1A"))
> (interface
> (input 1
> (name "Data")
> (tag "Data"))))
> (configuration
> (connect D2:1 D0:0)
> (connect D0:1 D1:1)
> (connect D3:0 D2:0)
> (connect D3:1 D4:1)))
> (contextCarrier
> (active detail)
> (panel
> (extent 195 78)
> (widget 0 detail
> (relativeOrigin 20 10)
> (title on)
> (borderStyle flat)
> (extent 142 25)
> (format dropDown)))
> (detail
> (extent 501 420)
> (anchorPt 3 0)
> (configuration
> (devCarrierFor 0
> (active open)
> (icon)
> (open
> (extent 142 25)
> (format dropDown))
> (pinCenter 110 150))
> (devCarrierFor 1
> (active open)
> (icon)
> (open
> (extent 81 53))
> (terminals on)
> (pinCenter 305 220))
> (devCarrierFor 2
> (active icon)
> (icon
> (extent 74 52)
> (iconImage "loop.icn"))
> (open)
> (terminals on)
> (pinCenter 40 70))
> (devCarrierFor 6
> (active open)
> (icon)
> (open
> (extent 84 30)
> (showFormat int))
> (pinCenter 170 40))
> (devCarrierFor 7
> (active open)
> (icon)
> (open
> (extent 81 53))
> (terminals on)
> (pinCenter 355 50))
> (connect D2:1 D0:0
> (points 3 79 70 110 70 110 117))
> (connect D0:1 D1:1
> (points 4 183 140 200 140 200 220 222 220))
> (connect D3:0 D2:0
> (points 8 170 57 170 80 120 80 120 60 110 60 110 20 40 20 40 41))
> (connect D3:1 D4:1
> (points 4 214 40 230 40 230 50 272 50)))
> (stackingOrder 1 0 2 3 4))))
> (configuration
> (connect D1:0 D0:0)
> (connect D2:1 D3:0)
> (connect D1:0 D4:0))
> (ShowOnExecPanel
> (relativeOrigin 229 173)))
> (contextCarrier
> (wndOrigin 44 152)
> (wndState res)
> (active detail)
> (panel
> (extent 701 507)
> (widget 2 detail
> (relativeOrigin 340 320)
> (title off)
> (borderStyle none)
> (extent 160 60))
> (widget 4 panel
> (relativeOrigin 20 50)
> (title on)
> (borderStyle flat)
> (extent 206 78)
> (carbonCopy))
> (widget 0 panel
> (relativeOrigin 280 50)
> (title on)
> (borderStyle flat)
> (extent 206 78)
> (carbonCopy)))
> (detail
> (extent 538 432)
> (anchorPt 164 18)
> (configuration
> (devCarrierFor 2
> (active icon)
> (icon
> (extent 56 16))
> (open
> (extent 308 178)
> (carbonCopy))
> (terminals on)
> (bg "Light Blue Gray")
> (pinCenter 130 250))
> (devCarrierFor 3
> (active open)
> (icon)
> (open
> (extent 84 30)
> (showFormat int))
> (pinCenter -70 160))
> (devCarrierFor 4
> (active open)
> (icon)
> (open
> (extent 47 22))
> (title off)
> (pinCenter -30 310))
> (devCarrierFor 5
> (active icon)
> (icon
> (extent 105 16))
> (open)
> (terminals on)
> (pinCenter 60 370))
> (devCarrierFor 6
> (active icon)
> (icon
> (extent 56 16))
> (open
> (extent 410 300)
> (carbonCopy))
> (terminals on)
> (bg "Light Blue Gray")
> (pinCenter 130 150))
> (connect D1:0 D0:0
> (points 4 -70 177 -70 200 130 200 130 239))
> (connect D2:1 D3:0
> (points 3 -4 310 60 310 60 359))
> (connect D1:0 D4:0
> (points 6 -70 177 -70 200 -10 200 -10 120 130 120 130 139)))
> (stackingOrder 1 3 2 0 4)))))
> (device 3 CALL
> (properties
> (name "Call UserFunction1")
> (callFunc "UserFunction1")
> (parmMode rev30)))
> (configuration))
> (contextCarrier
> (wndOrigin 2 2)
> (wndState res)
> (active detail)
> (detail
> (extent 598 432)
> (anchorPt 0 1)
> (configuration
> (devCarrierFor 3
> (active icon)
> (icon
> (extent 132 16))
> (open
> (extent 196 53))
> (terminals on)
> (pinCenter 89 50))))
> (numberFormats
> (realFormat standard)
> (realSigDigits 4)
> (realRadixSpec 4)
> (integerBase decimal))))
>
> --=====================_864434333==_
> Content-Type: text/plain; charset="us-ascii"
>
> Steven Timian
>
> stimian@ara.com
> (802) 763 - 8349 Ext 16 phone
> (802) 763 - 8283 fax
>
> Applied Research Associates
> New England Division
> RR1 Box 120A
> South Royalton, VT 05068
>
> --=====================_864434333==_--