Re: [U2] Sleeping in Basic

2013-01-30 Thread David A. Green
In my latest phantom program I used the PAUSE/WAKE commands as one poster
suggested.  It was a little bit tricky but this is what I came up with:

The driver program has this logic:

...
UTP.ID = GETENV(UD_TELNET_PID)
CMD = PHANTOM UPDATE.RECORD.PH :REC.KEY: :UTP.ID
PRINT START: :TIMEDATE()
PRINT CMD
PERFORM CMD
*
PAUSE 60
PRINT FINISH: :TIMEDATE()
...

While the Phantomed program has the following:

 PARAMS  = FIELD(TRIM(@SENTENCE),  , 2, )
 REC.KEY = FIELD(PARAMS,  , 1)
 UTP.ID  = FIELD(PARAMS,  , 2)
 PRINT Start UPDATE.REC.PH for :REC.KEY
 GOSUB UPDATE.REC
 PRINT Wake up process :UTP.ID
 WAKE UTP.ID

David A. Green
(480) 813-1725
DAG Consulting

-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Gregor Scott
Sent: Wednesday, January 16, 2013 9:41 PM
To: U2 Users List
Subject: Re: [U2] Sleeping in Basic

This might be a bit late, but just be careful about using openSocket() in
a phantom.
On UV (and I suspect on UD) this will change the phantom to an iPHANTOM
because it will consume a license.
If you have multiple phantoms running this concurrently you will start to
see a licensing impact you were not expecting.

Regards,

Gregor

-Original Message-
...

Doug this works for me in UniData:

   SLEEP.TIME = 500 ;* .5 Second
   ERR = openSocket(loopback, 25, 1, SLEEP.TIME, hBUFF)

David A. Green
(480) 813-1725
DAG Consulting

...

This email and any attachments to it are confidential.
You must not use, disclose or act on the email if you are not the intended
recipient.  Liability limited by a scheme approved under Professional
Standards Legislation.
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2013-01-16 Thread Gregor Scott
This might be a bit late, but just be careful about using openSocket() in a 
phantom.
On UV (and I suspect on UD) this will change the phantom to an iPHANTOM because 
it will consume a license.
If you have multiple phantoms running this concurrently you will start to see a 
licensing impact you were not expecting.

Regards,

Gregor

-Original Message-
...

Doug this works for me in UniData:

   SLEEP.TIME = 500 ;* .5 Second
   ERR = openSocket(loopback, 25, 1, SLEEP.TIME, hBUFF)

David A. Green
(480) 813-1725
DAG Consulting

...

This email and any attachments to it are confidential.
You must not use, disclose or act on the email if you are not the intended
recipient.  Liability limited by a scheme approved under Professional
Standards Legislation.
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2013-01-03 Thread Daniel McGrath
On newer versions of Windows you can find your precision (quanta) by running 
'w32tm /query /status' at the command prompt.

As an example, on my Windows 7 machine I get: Precision: -6 (15.625ms per tick)

So my NAP command would only work in multiples of 15.625ms.

Don't forgot that busy machines *can* affect this as well, as your program 
might not be put back on to the CPU in time. The perils of multi-tasking 
systems...


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson
Sent: Wednesday, January 02, 2013 10:47 PM
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Sleeping in Basic

The original point was to disavow anyone of the idea that you can actually NAP 
1 and expect only 1 millisecond to pass

Since the quanta aren't that small.

 

 

 

-Original Message-
From: LeRoy Dreyfuss lfd...@gmail.com
To: U2 Users List u2-users@listserver.u2ug.org
Sent: Wed, Jan 2, 2013 6:55 pm
Subject: Re: [U2] Sleeping in Basic


I do admit I've forgotten what the point of this was, since this thread was 
about SLEEP and NAP.

That said, you are correct- the oconv conversion was not valid, so the original 
string was returned.

Because UV can show time() and system(12) in milliseconds (system dependent), 
it would seem to not need a mask for milliseconds.




On Wed, Jan 2, 2013 at 9:16 PM, Wjhonson wjhon...@aol.com wrote:


  Yes like I said the Oconv using MMHSM doesn't do anything.
 Your output 75575.6608 of the place TIME() is unchanged So what's 
 MMHSM supposed to be doing?
 Because it's not changing the output at all






 -Original Message-
 From: LeRoy Dreyfuss lfd...@gmail.com
 To: U2 Users List u2-users@listserver.u2ug.org
 Sent: Wed, Jan 2, 2013 6:10 pm
 Subject: Re: [U2] Sleeping in Basic


 Top.
 *--: P
 001: X = TIME()
 002: Y = SYSTEM(12)
 003: A = ICONV(X,'MM')
 004: B = ICONV(Y,'MM')
 005: PRINT X,A
 006: PRINT Y,B
 007: L = OCONV(X,'MMHSM')
 008: M = OCONV(Y,'MMHSM')
 009: PRINT L,M
 Bottom.
 *--: I
 *--: FIBR
 Filed TEST.TIME in file BP.
 Compiling: Source = 'BP/TEST.TIME', Object = 'BP.O/TEST.TIME'
 *

 Compilation Complete.
 75575.6608  7557566
 75575.6608  7557566
 75575.6608  75575.6608
 

 This is 11.1.9 on Linux.


 On Wed, Jan 2, 2013 at 9:06 PM, Wjhonson wjhon...@aol.com wrote:

  On Universe 11, OCONVing it as you suggested just returns the exact 
  same result as the plain TIME() function without any conversion.
 
 
 
 
 
 
  -Original Message-
  From: LeRoy Dreyfuss lfd...@gmail.com
  To: U2 Users List u2-users@listserver.u2ug.org
  Sent: Wed, Jan 2, 2013 6:02 pm
  Subject: Re: [U2] Sleeping in Basic
 
 
  Don't ICONV it. Use OCONV.
 
  ex: OCONV(TIME(),'MMTHS')
 
 
  On Wed, Jan 2, 2013 at 7:54 PM, Wjhonson wjhon...@aol.com wrote:
 
   The 'MM' conversion works with the TIME() (which returns 
   milliseconds) on Universe 11
  
   but for some reason is cutting off the display to only 
   *hundredths* of
 a
   second, instead of the thousandths which the milliseconds counts.
  
   So TIME() shows 60814.304
   but ICONV(TIME(),'MM') shows 6081430
  
   without the trailing 4 milliseconds.
  
  ___
  U2-Users mailing list
  U2-Users@listserver.u2ug.org
  http://listserver.u2ug.org/mailman/listinfo/u2-users
 
 
  ___
  U2-Users mailing list
  U2-Users@listserver.u2ug.org
  http://listserver.u2ug.org/mailman/listinfo/u2-users
 
 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users


 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2013-01-02 Thread Ross Ferris
On a busy system, NAP 1 may actually take 2 or 3 milliseconds ... thus the time 
distortion.

A loop of 100 with a NAP 10 would be closer to the mark

Ross Ferris
Stamina Software
Visage  Better by Design!

-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Farmer
Sent: Saturday, 29 December 2012 4:32 AM
To: 'U2 Users List'
Subject: Re: [U2] Sleeping in Basic

I guess I am confused on the definition of quantized. NAP 250 seems to do 
what I want. Doing a LOOP 1000 and NAP 1 inside the loop, makes it takes quite 
a few seconds, where I would assume it would be 1 second (1000 x 1 millisecond 
- 1 second). However, loop 20 with NAP 250 in the loop takes 5 seconds, which 
is what I would expect (20 x 250 milliseconds = 5 seconds).

Also, the OCONV documentation only shows OCONV(num.expr,MT[H][S][c]) as a 
syntax. No option for displaying milliseconds. The only why I know to do that 
is to use SYSTEM(12).

I guess I was just using TIME() not SYSTEM(12) as it was easier to visually 
scan.

Doug Farmer
952-417-5225


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson
Sent: Friday, December 28, 2012 11:16 AM
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Sleeping in Basic

Your napping for a quarter of a second is too long :) I was saying that NAP is 
quantized.  You can't actually NAP for a microsecond.
So loop 1000 and NAP 1
By the way you can return the microseconds, why are you doing MTS

 
I never bothered to dig into it, to see on what it's quantized.

Without MTS you can see the microseconds.

 

 

-Original Message-
From: Doug Farmer dfar...@epicor.com
To: 'U2 Users List' u2-users@listserver.u2ug.org
Sent: Fri, Dec 28, 2012 7:22 am
Subject: Re: [U2] Sleeping in Basic


Wow, thanks of all of the responses. Unfortunately, none of them will seem to 
work on UniData. I will be using NAP on UniVerse.

PAUSE and WAKE, I had not heard of. This is only on UniData so not a UniVerse 
option. It would seem to be a good way to go, except for if the phantom process 
aborts, the WAKE is never executed and the invoking process (UniObjects
subroutine) hangs forever.

David's openSocket suggestion does not wait at all if the socket can be opened. 
If it cannot (for example host name is bad), the timeout is sometimes much 
longer, probably due to DNS lookup of the bad host name.

I tried these examples in the code below. The results are show below the code.


When I run this, using NAP 250, I get 4 times the same, then another 4 times 
the same etc. This seems to show NAP 250 does sleep for a quarter of a second. 

Doing NAP 1 for 2000 iterations took 31 seconds. Probably due to overhead of 
setting up NAP 2000 times.

The openSocket came right back all the time.

Any other ideas, I am open to testing.

Again, thanks for all of the responses!


Doug Farmer
952-417-5225
Program Listing

0001   PRINT 'Nap 250'
0002   FOR IDX = 1 TO 20
0003  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0004  NAP 250
0005   NEXT IDX
0006   PRINT 'Start of 2000'
0007   PRINT OCONV(TIME(),'MTS')
0008   FOR IDX = 1 TO 2000
0009  NAP 1
0010   NEXT IDX
0011   PRINT OCONV(TIME(),'MTS')
0012   PRINT 'DONE WITH 2000'
0013   PRINT 'Open Socket'
0014   FOR IDX = 1 TO 20
0015  SleepTime = 250
0016  ERR = openSocket('loopback',25,1,SleepTime,HBUFF)
0017  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0018   NEXT IDX

Output from Program
Nap 250
 1 09:11:29
 2 09:11:29
 3 09:11:29
 4 09:11:30
 5 09:11:30
 6 09:11:30
 7 09:11:30
 8 09:11:31
 9 09:11:31
10 09:11:31
11 09:11:31
12 09:11:32
13 09:11:32
14 09:11:32
15 09:11:32
16 09:11:33
17 09:11:33
18 09:11:33
19 09:11:33
20 09:11:34
Start of 2000
09:11:34
09:12:05
DONE WITH 2000
Open Socket
 1 09:12:05
 2 09:12:05
 3 09:12:05
 4 09:12:05
 5 09:12:05
 6 09:12:05
 7 09:12:05
 8 09:12:05
 9 09:12:05
10 09:12:05
11 09:12:05
12 09:12:05
13 09:12:05
14 09:12:05
15 09:12:05
16 09:12:05
17 09:12:05
18 09:12:05
19 09:12:05
20 09:12:05



This message has been scanned for malware by Websense. www.websense.com 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Click 
https://www.mailcontrol.com/sr/6lVGIXxG7qjGX2PQPOmvUlpAWghQWIvzb3YGjzkT!7MOUCUpiqnJJoGBzmYgl5U4YPnWx2HtmVnUfE+mA+MlhQ==
  to report this email as spam.
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo

Re: [U2] Sleeping in Basic

2013-01-02 Thread Wjhonson
It's not based on how busy the system is Ross.
U2 lives on top of O/S's that use different mechanisms to determine the clock 
time.

 U2 is limited by what those O/S's feed to it.
That's why NAP is quantized.


 

 

-Original Message-
From: Ross Ferris ro...@stamina.com.au
To: U2 Users List u2-users@listserver.u2ug.org
Sent: Wed, Jan 2, 2013 4:11 pm
Subject: Re: [U2] Sleeping in Basic


On a busy system, NAP 1 may actually take 2 or 3 milliseconds ... thus the time 
distortion.

A loop of 100 with a NAP 10 would be closer to the mark

Ross Ferris
Stamina Software
Visage  Better by Design!

-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] 
On Behalf Of Doug Farmer
Sent: Saturday, 29 December 2012 4:32 AM
To: 'U2 Users List'
Subject: Re: [U2] Sleeping in Basic

I guess I am confused on the definition of quantized. NAP 250 seems to do 
what 
I want. Doing a LOOP 1000 and NAP 1 inside the loop, makes it takes quite a few 
seconds, where I would assume it would be 1 second (1000 x 1 millisecond - 1 
second). However, loop 20 with NAP 250 in the loop takes 5 seconds, which is 
what I would expect (20 x 250 milliseconds = 5 seconds).

Also, the OCONV documentation only shows OCONV(num.expr,MT[H][S][c]) as a 
syntax. No option for displaying milliseconds. The only why I know to do that 
is 
to use SYSTEM(12).

I guess I was just using TIME() not SYSTEM(12) as it was easier to visually 
scan.

Doug Farmer
952-417-5225


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] 
On Behalf Of Wjhonson
Sent: Friday, December 28, 2012 11:16 AM
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Sleeping in Basic

Your napping for a quarter of a second is too long :) I was saying that NAP is 
quantized.  You can't actually NAP for a microsecond.
So loop 1000 and NAP 1
By the way you can return the microseconds, why are you doing MTS

 
I never bothered to dig into it, to see on what it's quantized.

Without MTS you can see the microseconds.

 

 

-Original Message-
From: Doug Farmer dfar...@epicor.com
To: 'U2 Users List' u2-users@listserver.u2ug.org
Sent: Fri, Dec 28, 2012 7:22 am
Subject: Re: [U2] Sleeping in Basic


Wow, thanks of all of the responses. Unfortunately, none of them will seem to 
work on UniData. I will be using NAP on UniVerse.

PAUSE and WAKE, I had not heard of. This is only on UniData so not a UniVerse 
option. It would seem to be a good way to go, except for if the phantom process 
aborts, the WAKE is never executed and the invoking process (UniObjects
subroutine) hangs forever.

David's openSocket suggestion does not wait at all if the socket can be opened. 
If it cannot (for example host name is bad), the timeout is sometimes much 
longer, probably due to DNS lookup of the bad host name.

I tried these examples in the code below. The results are show below the code.


When I run this, using NAP 250, I get 4 times the same, then another 4 times 
the 
same etc. This seems to show NAP 250 does sleep for a quarter of a second. 

Doing NAP 1 for 2000 iterations took 31 seconds. Probably due to overhead of 
setting up NAP 2000 times.

The openSocket came right back all the time.

Any other ideas, I am open to testing.

Again, thanks for all of the responses!


Doug Farmer
952-417-5225
Program Listing

0001   PRINT 'Nap 250'
0002   FOR IDX = 1 TO 20
0003  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0004  NAP 250
0005   NEXT IDX
0006   PRINT 'Start of 2000'
0007   PRINT OCONV(TIME(),'MTS')
0008   FOR IDX = 1 TO 2000
0009  NAP 1
0010   NEXT IDX
0011   PRINT OCONV(TIME(),'MTS')
0012   PRINT 'DONE WITH 2000'
0013   PRINT 'Open Socket'
0014   FOR IDX = 1 TO 20
0015  SleepTime = 250
0016  ERR = openSocket('loopback',25,1,SleepTime,HBUFF)
0017  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0018   NEXT IDX

Output from Program
Nap 250
 1 09:11:29
 2 09:11:29
 3 09:11:29
 4 09:11:30
 5 09:11:30
 6 09:11:30
 7 09:11:30
 8 09:11:31
 9 09:11:31
10 09:11:31
11 09:11:31
12 09:11:32
13 09:11:32
14 09:11:32
15 09:11:32
16 09:11:33
17 09:11:33
18 09:11:33
19 09:11:33
20 09:11:34
Start of 2000
09:11:34
09:12:05
DONE WITH 2000
Open Socket
 1 09:12:05
 2 09:12:05
 3 09:12:05
 4 09:12:05
 5 09:12:05
 6 09:12:05
 7 09:12:05
 8 09:12:05
 9 09:12:05
10 09:12:05
11 09:12:05
12 09:12:05
13 09:12:05
14 09:12:05
15 09:12:05
16 09:12:05
17 09:12:05
18 09:12:05
19 09:12:05
20 09:12:05



This message has been scanned for malware by Websense. www.websense.com 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Click 
https://www.mailcontrol.com/sr

Re: [U2] Sleeping in Basic

2013-01-02 Thread Wjhonson
For example, on my system, the quanta is 15 milliseconds.
On a quiet system, as the sole user, I cannot NAP 1 and have it come back in 1 
millisecond, it takes 15.
Sometimes it takes a bit more, like 16... maybe it's doing some background task.

So you can't get more discrete than what the underlying O/S allows.


 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2013-01-02 Thread Doug Averch
Just a point of reference, Unidata at version 7.3.2 supports milliseconds
for those of you who need it:

Issue UDT-4104 - Problem Description

UniBasic -- At this release of UniData, the ICONV and OCONV functions
have been enhanced to include milliseconds. A new conversion code of 'MM'
(Masked Milliseconds) has been added.

The internal data storage format is the number of milliseconds since
midnight.

The syntax for the ICONV Milliseconds (MM) function is:

   ICONV(num.expr, MM [H] [S[M]])

Regards,
Doug
www.u2logic.com/tools.html
Resizer for those who want current technology



On Wed, Jan 2, 2013 at 5:14 PM, Wjhonson wjhon...@aol.com wrote:

 It's not based on how busy the system is Ross.
 U2 lives on top of O/S's that use different mechanisms to determine the
 clock time.

  U2 is limited by what those O/S's feed to it.
 That's why NAP is quantized.






 -Original Message-
 From: Ross Ferris ro...@stamina.com.au
 To: U2 Users List u2-users@listserver.u2ug.org
 Sent: Wed, Jan 2, 2013 4:11 pm
 Subject: Re: [U2] Sleeping in Basic


 On a busy system, NAP 1 may actually take 2 or 3 milliseconds ... thus the
 time
 distortion.

 A loop of 100 with a NAP 10 would be closer to the mark

 Ross Ferris
 Stamina Software
 Visage  Better by Design!

 -Original Message-
 From: u2-users-boun...@listserver.u2ug.org [mailto:
 u2-users-boun...@listserver.u2ug.org]
 On Behalf Of Doug Farmer
 Sent: Saturday, 29 December 2012 4:32 AM
 To: 'U2 Users List'
 Subject: Re: [U2] Sleeping in Basic

 I guess I am confused on the definition of quantized. NAP 250 seems to
 do what
 I want. Doing a LOOP 1000 and NAP 1 inside the loop, makes it takes quite
 a few
 seconds, where I would assume it would be 1 second (1000 x 1 millisecond -
 1
 second). However, loop 20 with NAP 250 in the loop takes 5 seconds, which
 is
 what I would expect (20 x 250 milliseconds = 5 seconds).

 Also, the OCONV documentation only shows OCONV(num.expr,MT[H][S][c]) as a
 syntax. No option for displaying milliseconds. The only why I know to do
 that is
 to use SYSTEM(12).

 I guess I was just using TIME() not SYSTEM(12) as it was easier to visually
 scan.

 Doug Farmer
 952-417-5225


 -Original Message-
 From: u2-users-boun...@listserver.u2ug.org [mailto:
 u2-users-boun...@listserver.u2ug.org]
 On Behalf Of Wjhonson
 Sent: Friday, December 28, 2012 11:16 AM
 To: u2-users@listserver.u2ug.org
 Subject: Re: [U2] Sleeping in Basic

 Your napping for a quarter of a second is too long :) I was saying that
 NAP is
 quantized.  You can't actually NAP for a microsecond.
 So loop 1000 and NAP 1
 By the way you can return the microseconds, why are you doing MTS


 I never bothered to dig into it, to see on what it's quantized.

 Without MTS you can see the microseconds.





 -Original Message-
 From: Doug Farmer dfar...@epicor.com
 To: 'U2 Users List' u2-users@listserver.u2ug.org
 Sent: Fri, Dec 28, 2012 7:22 am
 Subject: Re: [U2] Sleeping in Basic


 Wow, thanks of all of the responses. Unfortunately, none of them will seem
 to
 work on UniData. I will be using NAP on UniVerse.

 PAUSE and WAKE, I had not heard of. This is only on UniData so not a
 UniVerse
 option. It would seem to be a good way to go, except for if the phantom
 process
 aborts, the WAKE is never executed and the invoking process (UniObjects
 subroutine) hangs forever.

 David's openSocket suggestion does not wait at all if the socket can be
 opened.
 If it cannot (for example host name is bad), the timeout is sometimes much
 longer, probably due to DNS lookup of the bad host name.

 I tried these examples in the code below. The results are show below the
 code.


 When I run this, using NAP 250, I get 4 times the same, then another 4
 times the
 same etc. This seems to show NAP 250 does sleep for a quarter of a second.

 Doing NAP 1 for 2000 iterations took 31 seconds. Probably due to overhead
 of
 setting up NAP 2000 times.

 The openSocket came right back all the time.

 Any other ideas, I am open to testing.

 Again, thanks for all of the responses!


 Doug Farmer
 952-417-5225
 Program Listing

 0001   PRINT 'Nap 250'
 0002   FOR IDX = 1 TO 20
 0003  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
 0004  NAP 250
 0005   NEXT IDX
 0006   PRINT 'Start of 2000'
 0007   PRINT OCONV(TIME(),'MTS')
 0008   FOR IDX = 1 TO 2000
 0009  NAP 1
 0010   NEXT IDX
 0011   PRINT OCONV(TIME(),'MTS')
 0012   PRINT 'DONE WITH 2000'
 0013   PRINT 'Open Socket'
 0014   FOR IDX = 1 TO 20
 0015  SleepTime = 250
 0016  ERR = openSocket('loopback',25,1,SleepTime,HBUFF)
 0017  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
 0018   NEXT IDX

 Output from Program
 Nap 250
  1 09:11:29
  2 09:11:29
  3 09:11:29
  4 09:11:30
  5 09:11:30
  6 09:11:30
  7 09:11:30
  8 09:11:31
  9 09:11:31
 10 09:11:31
 11 09:11:31
 12 09:11:32
 13 09:11:32
 14 09:11:32
 15 09:11:32
 16 09:11:33
 17 09:11:33
 18 09:11:33
 19 09

Re: [U2] Sleeping in Basic

2013-01-02 Thread Wjhonson
The 'MM' conversion works with the TIME() (which returns milliseconds)
on Universe 11

but for some reason is cutting off the display to only *hundredths* of a 
second, instead of the thousandths which the milliseconds counts.

So TIME() shows 60814.304
but ICONV(TIME(),'MM') shows 6081430

without the trailing 4 milliseconds. 

 

 

 

-Original Message-
From: Doug Averch dave...@gmail.com
To: U2 Users List u2-users@listserver.u2ug.org
Sent: Wed, Jan 2, 2013 4:46 pm
Subject: Re: [U2] Sleeping in Basic


Just a point of reference, Unidata at version 7.3.2 supports milliseconds
for those of you who need it:

Issue UDT-4104 - Problem Description

UniBasic -- At this release of UniData, the ICONV and OCONV functions
have been enhanced to include milliseconds. A new conversion code of 'MM'
(Masked Milliseconds) has been added.

The internal data storage format is the number of milliseconds since
midnight.

The syntax for the ICONV Milliseconds (MM) function is:

   ICONV(num.expr, MM [H] [S[M]])

Regards,
Doug
www.u2logic.com/tools.html
Resizer for those who want current technology



On Wed, Jan 2, 2013 at 5:14 PM, Wjhonson wjhon...@aol.com wrote:

 It's not based on how busy the system is Ross.
 U2 lives on top of O/S's that use different mechanisms to determine the
 clock time.

  U2 is limited by what those O/S's feed to it.
 That's why NAP is quantized.






 -Original Message-
 From: Ross Ferris ro...@stamina.com.au
 To: U2 Users List u2-users@listserver.u2ug.org
 Sent: Wed, Jan 2, 2013 4:11 pm
 Subject: Re: [U2] Sleeping in Basic


 On a busy system, NAP 1 may actually take 2 or 3 milliseconds ... thus the
 time
 distortion.

 A loop of 100 with a NAP 10 would be closer to the mark

 Ross Ferris
 Stamina Software
 Visage  Better by Design!

 -Original Message-
 From: u2-users-boun...@listserver.u2ug.org [mailto:
 u2-users-boun...@listserver.u2ug.org]
 On Behalf Of Doug Farmer
 Sent: Saturday, 29 December 2012 4:32 AM
 To: 'U2 Users List'
 Subject: Re: [U2] Sleeping in Basic

 I guess I am confused on the definition of quantized. NAP 250 seems to
 do what
 I want. Doing a LOOP 1000 and NAP 1 inside the loop, makes it takes quite
 a few
 seconds, where I would assume it would be 1 second (1000 x 1 millisecond -
 1
 second). However, loop 20 with NAP 250 in the loop takes 5 seconds, which
 is
 what I would expect (20 x 250 milliseconds = 5 seconds).

 Also, the OCONV documentation only shows OCONV(num.expr,MT[H][S][c]) as a
 syntax. No option for displaying milliseconds. The only why I know to do
 that is
 to use SYSTEM(12).

 I guess I was just using TIME() not SYSTEM(12) as it was easier to visually
 scan.

 Doug Farmer
 952-417-5225


 -Original Message-
 From: u2-users-boun...@listserver.u2ug.org [mailto:
 u2-users-boun...@listserver.u2ug.org]
 On Behalf Of Wjhonson
 Sent: Friday, December 28, 2012 11:16 AM
 To: u2-users@listserver.u2ug.org
 Subject: Re: [U2] Sleeping in Basic

 Your napping for a quarter of a second is too long :) I was saying that
 NAP is
 quantized.  You can't actually NAP for a microsecond.
 So loop 1000 and NAP 1
 By the way you can return the microseconds, why are you doing MTS


 I never bothered to dig into it, to see on what it's quantized.

 Without MTS you can see the microseconds.





 -Original Message-
 From: Doug Farmer dfar...@epicor.com
 To: 'U2 Users List' u2-users@listserver.u2ug.org
 Sent: Fri, Dec 28, 2012 7:22 am
 Subject: Re: [U2] Sleeping in Basic


 Wow, thanks of all of the responses. Unfortunately, none of them will seem
 to
 work on UniData. I will be using NAP on UniVerse.

 PAUSE and WAKE, I had not heard of. This is only on UniData so not a
 UniVerse
 option. It would seem to be a good way to go, except for if the phantom
 process
 aborts, the WAKE is never executed and the invoking process (UniObjects
 subroutine) hangs forever.

 David's openSocket suggestion does not wait at all if the socket can be
 opened.
 If it cannot (for example host name is bad), the timeout is sometimes much
 longer, probably due to DNS lookup of the bad host name.

 I tried these examples in the code below. The results are show below the
 code.


 When I run this, using NAP 250, I get 4 times the same, then another 4
 times the
 same etc. This seems to show NAP 250 does sleep for a quarter of a second.

 Doing NAP 1 for 2000 iterations took 31 seconds. Probably due to overhead
 of
 setting up NAP 2000 times.

 The openSocket came right back all the time.

 Any other ideas, I am open to testing.

 Again, thanks for all of the responses!


 Doug Farmer
 952-417-5225
 Program Listing

 0001   PRINT 'Nap 250'
 0002   FOR IDX = 1 TO 20
 0003  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
 0004  NAP 250
 0005   NEXT IDX
 0006   PRINT 'Start of 2000'
 0007   PRINT OCONV(TIME(),'MTS')
 0008   FOR IDX = 1 TO 2000
 0009  NAP 1
 0010   NEXT IDX
 0011   PRINT OCONV(TIME(),'MTS')
 0012   PRINT

Re: [U2] Sleeping in Basic

2013-01-02 Thread LeRoy Dreyfuss
Don't ICONV it. Use OCONV.

ex: OCONV(TIME(),'MMTHS')


On Wed, Jan 2, 2013 at 7:54 PM, Wjhonson wjhon...@aol.com wrote:

 The 'MM' conversion works with the TIME() (which returns milliseconds)
 on Universe 11

 but for some reason is cutting off the display to only *hundredths* of a
 second, instead of the thousandths which the milliseconds counts.

 So TIME() shows 60814.304
 but ICONV(TIME(),'MM') shows 6081430

 without the trailing 4 milliseconds.

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2013-01-02 Thread Wjhonson
On Universe 11, OCONVing it as you suggested just returns the exact same result 
as the plain TIME() function without any conversion.
 

 

 

-Original Message-
From: LeRoy Dreyfuss lfd...@gmail.com
To: U2 Users List u2-users@listserver.u2ug.org
Sent: Wed, Jan 2, 2013 6:02 pm
Subject: Re: [U2] Sleeping in Basic


Don't ICONV it. Use OCONV.

ex: OCONV(TIME(),'MMTHS')


On Wed, Jan 2, 2013 at 7:54 PM, Wjhonson wjhon...@aol.com wrote:

 The 'MM' conversion works with the TIME() (which returns milliseconds)
 on Universe 11

 but for some reason is cutting off the display to only *hundredths* of a
 second, instead of the thousandths which the milliseconds counts.

 So TIME() shows 60814.304
 but ICONV(TIME(),'MM') shows 6081430

 without the trailing 4 milliseconds.

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2013-01-02 Thread LeRoy Dreyfuss
Top.
*--: P
001: X = TIME()
002: Y = SYSTEM(12)
003: A = ICONV(X,'MM')
004: B = ICONV(Y,'MM')
005: PRINT X,A
006: PRINT Y,B
007: L = OCONV(X,'MMHSM')
008: M = OCONV(Y,'MMHSM')
009: PRINT L,M
Bottom.
*--: I
*--: FIBR
Filed TEST.TIME in file BP.
Compiling: Source = 'BP/TEST.TIME', Object = 'BP.O/TEST.TIME'
*

Compilation Complete.
75575.6608  7557566
75575.6608  7557566
75575.6608  75575.6608


This is 11.1.9 on Linux.


On Wed, Jan 2, 2013 at 9:06 PM, Wjhonson wjhon...@aol.com wrote:

 On Universe 11, OCONVing it as you suggested just returns the exact same
 result as the plain TIME() function without any conversion.






 -Original Message-
 From: LeRoy Dreyfuss lfd...@gmail.com
 To: U2 Users List u2-users@listserver.u2ug.org
 Sent: Wed, Jan 2, 2013 6:02 pm
 Subject: Re: [U2] Sleeping in Basic


 Don't ICONV it. Use OCONV.

 ex: OCONV(TIME(),'MMTHS')


 On Wed, Jan 2, 2013 at 7:54 PM, Wjhonson wjhon...@aol.com wrote:

  The 'MM' conversion works with the TIME() (which returns milliseconds)
  on Universe 11
 
  but for some reason is cutting off the display to only *hundredths* of a
  second, instead of the thousandths which the milliseconds counts.
 
  So TIME() shows 60814.304
  but ICONV(TIME(),'MM') shows 6081430
 
  without the trailing 4 milliseconds.
 
 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users


 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2013-01-02 Thread LeRoy Dreyfuss
I should also mention that in your example, UV is not just dropping the
last two digits, it's really rounding them up (o down, based on standard
rounding rules) and showing hundredths. Not sure why Rocket did that,
though.


On Wed, Jan 2, 2013 at 9:06 PM, Wjhonson wjhon...@aol.com wrote:

 On Universe 11, OCONVing it as you suggested just returns the exact same
 result as the plain TIME() function without any conversion.






 -Original Message-
 From: LeRoy Dreyfuss lfd...@gmail.com
 To: U2 Users List u2-users@listserver.u2ug.org
 Sent: Wed, Jan 2, 2013 6:02 pm
 Subject: Re: [U2] Sleeping in Basic


 Don't ICONV it. Use OCONV.

 ex: OCONV(TIME(),'MMTHS')


 On Wed, Jan 2, 2013 at 7:54 PM, Wjhonson wjhon...@aol.com wrote:

  The 'MM' conversion works with the TIME() (which returns milliseconds)
  on Universe 11
 
  but for some reason is cutting off the display to only *hundredths* of a
  second, instead of the thousandths which the milliseconds counts.
 
  So TIME() shows 60814.304
  but ICONV(TIME(),'MM') shows 6081430
 
  without the trailing 4 milliseconds.
 
 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users


 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2013-01-02 Thread Wjhonson
Yes I just noticed that too.
Maybe it think's its dollars and cents


 

 

 

-Original Message-
From: LeRoy Dreyfuss lfd...@gmail.com
To: U2 Users List u2-users@listserver.u2ug.org
Sent: Wed, Jan 2, 2013 6:14 pm
Subject: Re: [U2] Sleeping in Basic


I should also mention that in your example, UV is not just dropping the
last two digits, it's really rounding them up (o down, based on standard
rounding rules) and showing hundredths. Not sure why Rocket did that,
though.


On Wed, Jan 2, 2013 at 9:06 PM, Wjhonson wjhon...@aol.com wrote:

 On Universe 11, OCONVing it as you suggested just returns the exact same
 result as the plain TIME() function without any conversion.






 -Original Message-
 From: LeRoy Dreyfuss lfd...@gmail.com
 To: U2 Users List u2-users@listserver.u2ug.org
 Sent: Wed, Jan 2, 2013 6:02 pm
 Subject: Re: [U2] Sleeping in Basic


 Don't ICONV it. Use OCONV.

 ex: OCONV(TIME(),'MMTHS')


 On Wed, Jan 2, 2013 at 7:54 PM, Wjhonson wjhon...@aol.com wrote:

  The 'MM' conversion works with the TIME() (which returns milliseconds)
  on Universe 11
 
  but for some reason is cutting off the display to only *hundredths* of a
  second, instead of the thousandths which the milliseconds counts.
 
  So TIME() shows 60814.304
  but ICONV(TIME(),'MM') shows 6081430
 
  without the trailing 4 milliseconds.
 
 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users


 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2013-01-02 Thread Wjhonson

 Yes like I said the Oconv using MMHSM doesn't do anything.
Your output 75575.6608 of the place TIME() is unchanged
So what's MMHSM supposed to be doing?
Because it's not changing the output at all


 

 

-Original Message-
From: LeRoy Dreyfuss lfd...@gmail.com
To: U2 Users List u2-users@listserver.u2ug.org
Sent: Wed, Jan 2, 2013 6:10 pm
Subject: Re: [U2] Sleeping in Basic


Top.
*--: P
001: X = TIME()
002: Y = SYSTEM(12)
003: A = ICONV(X,'MM')
004: B = ICONV(Y,'MM')
005: PRINT X,A
006: PRINT Y,B
007: L = OCONV(X,'MMHSM')
008: M = OCONV(Y,'MMHSM')
009: PRINT L,M
Bottom.
*--: I
*--: FIBR
Filed TEST.TIME in file BP.
Compiling: Source = 'BP/TEST.TIME', Object = 'BP.O/TEST.TIME'
*

Compilation Complete.
75575.6608  7557566
75575.6608  7557566
75575.6608  75575.6608


This is 11.1.9 on Linux.


On Wed, Jan 2, 2013 at 9:06 PM, Wjhonson wjhon...@aol.com wrote:

 On Universe 11, OCONVing it as you suggested just returns the exact same
 result as the plain TIME() function without any conversion.






 -Original Message-
 From: LeRoy Dreyfuss lfd...@gmail.com
 To: U2 Users List u2-users@listserver.u2ug.org
 Sent: Wed, Jan 2, 2013 6:02 pm
 Subject: Re: [U2] Sleeping in Basic


 Don't ICONV it. Use OCONV.

 ex: OCONV(TIME(),'MMTHS')


 On Wed, Jan 2, 2013 at 7:54 PM, Wjhonson wjhon...@aol.com wrote:

  The 'MM' conversion works with the TIME() (which returns milliseconds)
  on Universe 11
 
  but for some reason is cutting off the display to only *hundredths* of a
  second, instead of the thousandths which the milliseconds counts.
 
  So TIME() shows 60814.304
  but ICONV(TIME(),'MM') shows 6081430
 
  without the trailing 4 milliseconds.
 
 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users


 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2013-01-02 Thread LeRoy Dreyfuss
I do admit I've forgotten what the point of this was, since this thread was
about SLEEP and NAP.

That said, you are correct- the oconv conversion was not valid, so the
original string was returned.

Because UV can show time() and system(12) in milliseconds (system
dependent), it would seem to not need a mask for milliseconds.




On Wed, Jan 2, 2013 at 9:16 PM, Wjhonson wjhon...@aol.com wrote:


  Yes like I said the Oconv using MMHSM doesn't do anything.
 Your output 75575.6608 of the place TIME() is unchanged
 So what's MMHSM supposed to be doing?
 Because it's not changing the output at all






 -Original Message-
 From: LeRoy Dreyfuss lfd...@gmail.com
 To: U2 Users List u2-users@listserver.u2ug.org
 Sent: Wed, Jan 2, 2013 6:10 pm
 Subject: Re: [U2] Sleeping in Basic


 Top.
 *--: P
 001: X = TIME()
 002: Y = SYSTEM(12)
 003: A = ICONV(X,'MM')
 004: B = ICONV(Y,'MM')
 005: PRINT X,A
 006: PRINT Y,B
 007: L = OCONV(X,'MMHSM')
 008: M = OCONV(Y,'MMHSM')
 009: PRINT L,M
 Bottom.
 *--: I
 *--: FIBR
 Filed TEST.TIME in file BP.
 Compiling: Source = 'BP/TEST.TIME', Object = 'BP.O/TEST.TIME'
 *

 Compilation Complete.
 75575.6608  7557566
 75575.6608  7557566
 75575.6608  75575.6608
 

 This is 11.1.9 on Linux.


 On Wed, Jan 2, 2013 at 9:06 PM, Wjhonson wjhon...@aol.com wrote:

  On Universe 11, OCONVing it as you suggested just returns the exact same
  result as the plain TIME() function without any conversion.
 
 
 
 
 
 
  -Original Message-
  From: LeRoy Dreyfuss lfd...@gmail.com
  To: U2 Users List u2-users@listserver.u2ug.org
  Sent: Wed, Jan 2, 2013 6:02 pm
  Subject: Re: [U2] Sleeping in Basic
 
 
  Don't ICONV it. Use OCONV.
 
  ex: OCONV(TIME(),'MMTHS')
 
 
  On Wed, Jan 2, 2013 at 7:54 PM, Wjhonson wjhon...@aol.com wrote:
 
   The 'MM' conversion works with the TIME() (which returns milliseconds)
   on Universe 11
  
   but for some reason is cutting off the display to only *hundredths* of
 a
   second, instead of the thousandths which the milliseconds counts.
  
   So TIME() shows 60814.304
   but ICONV(TIME(),'MM') shows 6081430
  
   without the trailing 4 milliseconds.
  
  ___
  U2-Users mailing list
  U2-Users@listserver.u2ug.org
  http://listserver.u2ug.org/mailman/listinfo/u2-users
 
 
  ___
  U2-Users mailing list
  U2-Users@listserver.u2ug.org
  http://listserver.u2ug.org/mailman/listinfo/u2-users
 
 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users


 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2013-01-02 Thread Wjhonson
The original point was to disavow anyone of the idea that you can actually NAP 
1 and expect only 1 millisecond to pass

Since the quanta aren't that small.

 

 

 

-Original Message-
From: LeRoy Dreyfuss lfd...@gmail.com
To: U2 Users List u2-users@listserver.u2ug.org
Sent: Wed, Jan 2, 2013 6:55 pm
Subject: Re: [U2] Sleeping in Basic


I do admit I've forgotten what the point of this was, since this thread was
about SLEEP and NAP.

That said, you are correct- the oconv conversion was not valid, so the
original string was returned.

Because UV can show time() and system(12) in milliseconds (system
dependent), it would seem to not need a mask for milliseconds.




On Wed, Jan 2, 2013 at 9:16 PM, Wjhonson wjhon...@aol.com wrote:


  Yes like I said the Oconv using MMHSM doesn't do anything.
 Your output 75575.6608 of the place TIME() is unchanged
 So what's MMHSM supposed to be doing?
 Because it's not changing the output at all






 -Original Message-
 From: LeRoy Dreyfuss lfd...@gmail.com
 To: U2 Users List u2-users@listserver.u2ug.org
 Sent: Wed, Jan 2, 2013 6:10 pm
 Subject: Re: [U2] Sleeping in Basic


 Top.
 *--: P
 001: X = TIME()
 002: Y = SYSTEM(12)
 003: A = ICONV(X,'MM')
 004: B = ICONV(Y,'MM')
 005: PRINT X,A
 006: PRINT Y,B
 007: L = OCONV(X,'MMHSM')
 008: M = OCONV(Y,'MMHSM')
 009: PRINT L,M
 Bottom.
 *--: I
 *--: FIBR
 Filed TEST.TIME in file BP.
 Compiling: Source = 'BP/TEST.TIME', Object = 'BP.O/TEST.TIME'
 *

 Compilation Complete.
 75575.6608  7557566
 75575.6608  7557566
 75575.6608  75575.6608
 

 This is 11.1.9 on Linux.


 On Wed, Jan 2, 2013 at 9:06 PM, Wjhonson wjhon...@aol.com wrote:

  On Universe 11, OCONVing it as you suggested just returns the exact same
  result as the plain TIME() function without any conversion.
 
 
 
 
 
 
  -Original Message-
  From: LeRoy Dreyfuss lfd...@gmail.com
  To: U2 Users List u2-users@listserver.u2ug.org
  Sent: Wed, Jan 2, 2013 6:02 pm
  Subject: Re: [U2] Sleeping in Basic
 
 
  Don't ICONV it. Use OCONV.
 
  ex: OCONV(TIME(),'MMTHS')
 
 
  On Wed, Jan 2, 2013 at 7:54 PM, Wjhonson wjhon...@aol.com wrote:
 
   The 'MM' conversion works with the TIME() (which returns milliseconds)
   on Universe 11
  
   but for some reason is cutting off the display to only *hundredths* of
 a
   second, instead of the thousandths which the milliseconds counts.
  
   So TIME() shows 60814.304
   but ICONV(TIME(),'MM') shows 6081430
  
   without the trailing 4 milliseconds.
  
  ___
  U2-Users mailing list
  U2-Users@listserver.u2ug.org
  http://listserver.u2ug.org/mailman/listinfo/u2-users
 
 
  ___
  U2-Users mailing list
  U2-Users@listserver.u2ug.org
  http://listserver.u2ug.org/mailman/listinfo/u2-users
 
 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users


 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-28 Thread George Gallen
A Caveat on the SLEEP [time] Universe Command (NOT the BASIC Command) if used in
A paragraph loop. If what is inside the loop takes less than a second to run,
It may be triggered multiple times.

Example:

PA
LOOP
   SLEEP 17:10
   RUN LIB SOMEPROGRAM
REPEAT

After it runs the first time, and goes back into the loop, if it's still 17:10 
it
Will run again.

At least with UV 10.0.2

George

-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Daniel McGrath
Sent: Thursday, December 27, 2012 6:31 PM
To: U2 Users List (u2-users@listserver.u2ug.org)
Subject: Re: [U2] Sleeping in Basic

UniVerse supports the NAP [milliseconds] command.

On UniData it would be more efficient to use the PAUSE [time] / WAKE command 
which gives you both an automated timeout as well as allowing you to continue 
as soon as the PHANTOM declares it okay.

You can switch between both of these in your code if you have an 
pre-compilation process or with creative uses of subroutines.

Cheers,

Dan McGrath
Product Manager
Rocket Software
4600 South Ulster Street  ·  Suite 1100  ·   Denver, CO 80237 ·  USA
T: +1 720 475 8098 · E: dmcgr...@rocketsoftware.com · W: u2.rocketsoftware.com


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Farmer
Sent: Thursday, December 27, 2012 2:56 PM
To: 'U2 Users List'
Subject: [U2] Sleeping in Basic

Happy holidays all,

I just want to make sure I did not miss something over the U2 releases. Since 
the Microdata Reality days, I have used SLEEP nn to sleep for nn seconds. 
Simple, usually does the trick.

But in today's gotta have it now, I won't wait, environment, a second is 
sometimes way too long.

Is there anything I missed over the last few years to sleep for less than a 
second? I am executing a phantom command from a UniObjects subroutine call and 
waiting for it to finish. I am using a phantom, just in case the program aborts 
or hangs. I am not in control of what code is being run, it could try to read 
or write to an unopened file for example. If the program does hang, I get the 
dreaded Error 30102 message (not helpful at all).

In most cases, the program reads the data it needs and finishes in less than a 
second.  The UniObjects subroutine then writes a flag I can pick up to see that 
the data is ready to return to the UniObjects client.

I don't want the subroutine constantly looping and reading for the flag. This 
would take a lot of the CPU cycles. But, I don't want to wait up to a second to 
see that the phantom has completed.

Any ideas would be helpful. This needs to run on both UniData and UniVerse.

Have a great New Year. One more year older for us experienced developers in 
the PICK community. (circa 1978)

Doug Farmer


This message has been scanned for malware by Websense. www.websense.com 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-28 Thread David A. Green
Try changing the port number to something that doesn't exist.

David A. Green
(480) 813-1725
DAG Consulting


-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Farmer
Sent: Friday, December 28, 2012 8:22 AM
To: 'U2 Users List'
Subject: Re: [U2] Sleeping in Basic

Wow, thanks of all of the responses. Unfortunately, none of them will seem
to work on UniData. I will be using NAP on UniVerse.

PAUSE and WAKE, I had not heard of. This is only on UniData so not a
UniVerse option. It would seem to be a good way to go, except for if the
phantom process aborts, the WAKE is never executed and the invoking process
(UniObjects subroutine) hangs forever.

David's openSocket suggestion does not wait at all if the socket can be
opened. If it cannot (for example host name is bad), the timeout is
sometimes much longer, probably due to DNS lookup of the bad host name.

I tried these examples in the code below. The results are show below the
code.


When I run this, using NAP 250, I get 4 times the same, then another 4 times
the same etc. This seems to show NAP 250 does sleep for a quarter of a
second. 

Doing NAP 1 for 2000 iterations took 31 seconds. Probably due to overhead of
setting up NAP 2000 times.

The openSocket came right back all the time.

Any other ideas, I am open to testing.

Again, thanks for all of the responses!


Doug Farmer
952-417-5225
Program Listing

0001   PRINT 'Nap 250'
0002   FOR IDX = 1 TO 20
0003  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0004  NAP 250
0005   NEXT IDX
0006   PRINT 'Start of 2000'
0007   PRINT OCONV(TIME(),'MTS')
0008   FOR IDX = 1 TO 2000
0009  NAP 1
0010   NEXT IDX
0011   PRINT OCONV(TIME(),'MTS')
0012   PRINT 'DONE WITH 2000'
0013   PRINT 'Open Socket'
0014   FOR IDX = 1 TO 20
0015  SleepTime = 250
0016  ERR = openSocket('loopback',25,1,SleepTime,HBUFF)
0017  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0018   NEXT IDX

Output from Program
Nap 250
 1 09:11:29
 2 09:11:29
 3 09:11:29
 4 09:11:30
 5 09:11:30
 6 09:11:30
 7 09:11:30
 8 09:11:31
 9 09:11:31
10 09:11:31
11 09:11:31
12 09:11:32
13 09:11:32
14 09:11:32
15 09:11:32
16 09:11:33
17 09:11:33
18 09:11:33
19 09:11:33
20 09:11:34
Start of 2000
09:11:34
09:12:05
DONE WITH 2000
Open Socket
 1 09:12:05
 2 09:12:05
 3 09:12:05
 4 09:12:05
 5 09:12:05
 6 09:12:05
 7 09:12:05
 8 09:12:05
 9 09:12:05
10 09:12:05
11 09:12:05
12 09:12:05
13 09:12:05
14 09:12:05
15 09:12:05
16 09:12:05
17 09:12:05
18 09:12:05
19 09:12:05
20 09:12:05



This message has been scanned for malware by Websense. www.websense.com
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-28 Thread Daniel McGrath
Pause can have a timeout value on it, so if for example the maximum time you 
want to wait is 10 seconds, PAUSE can automatically resume then, at which point 
you can check if the phantom is still running or a flag doesn't exist.

Still doesn't solve your UniData only problem though.

Regards,
Dan


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Farmer
Sent: Friday, December 28, 2012 8:22 AM
To: 'U2 Users List'
Subject: Re: [U2] Sleeping in Basic

Wow, thanks of all of the responses. Unfortunately, none of them will seem to 
work on UniData. I will be using NAP on UniVerse.

PAUSE and WAKE, I had not heard of. This is only on UniData so not a UniVerse 
option. It would seem to be a good way to go, except for if the phantom process 
aborts, the WAKE is never executed and the invoking process (UniObjects 
subroutine) hangs forever.

David's openSocket suggestion does not wait at all if the socket can be opened. 
If it cannot (for example host name is bad), the timeout is sometimes much 
longer, probably due to DNS lookup of the bad host name.

I tried these examples in the code below. The results are show below the code.


When I run this, using NAP 250, I get 4 times the same, then another 4 times 
the same etc. This seems to show NAP 250 does sleep for a quarter of a second. 

Doing NAP 1 for 2000 iterations took 31 seconds. Probably due to overhead of 
setting up NAP 2000 times.

The openSocket came right back all the time.

Any other ideas, I am open to testing.

Again, thanks for all of the responses!


Doug Farmer
952-417-5225
Program Listing

0001   PRINT 'Nap 250'
0002   FOR IDX = 1 TO 20
0003  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0004  NAP 250
0005   NEXT IDX
0006   PRINT 'Start of 2000'
0007   PRINT OCONV(TIME(),'MTS')
0008   FOR IDX = 1 TO 2000
0009  NAP 1
0010   NEXT IDX
0011   PRINT OCONV(TIME(),'MTS')
0012   PRINT 'DONE WITH 2000'
0013   PRINT 'Open Socket'
0014   FOR IDX = 1 TO 20
0015  SleepTime = 250
0016  ERR = openSocket('loopback',25,1,SleepTime,HBUFF)
0017  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0018   NEXT IDX

Output from Program
Nap 250
 1 09:11:29
 2 09:11:29
 3 09:11:29
 4 09:11:30
 5 09:11:30
 6 09:11:30
 7 09:11:30
 8 09:11:31
 9 09:11:31
10 09:11:31
11 09:11:31
12 09:11:32
13 09:11:32
14 09:11:32
15 09:11:32
16 09:11:33
17 09:11:33
18 09:11:33
19 09:11:33
20 09:11:34
Start of 2000
09:11:34
09:12:05
DONE WITH 2000
Open Socket
 1 09:12:05
 2 09:12:05
 3 09:12:05
 4 09:12:05
 5 09:12:05
 6 09:12:05
 7 09:12:05
 8 09:12:05
 9 09:12:05
10 09:12:05
11 09:12:05
12 09:12:05
13 09:12:05
14 09:12:05
15 09:12:05
16 09:12:05
17 09:12:05
18 09:12:05
19 09:12:05
20 09:12:05



This message has been scanned for malware by Websense. www.websense.com 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-28 Thread Doug Farmer
Great, that works wonderfully!

Thanks for the tip

I am going to change to localhost from loopback, as I am not all machines have 
loopback defined.

I owe you one

Doug

Doug Farmer
952-417-5225


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David A. Green
Sent: Friday, December 28, 2012 9:40 AM
To: 'U2 Users List'
Subject: Re: [U2] Sleeping in Basic

Try changing the port number to something that doesn't exist.

David A. Green
(480) 813-1725
DAG Consulting


-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Farmer
Sent: Friday, December 28, 2012 8:22 AM
To: 'U2 Users List'
Subject: Re: [U2] Sleeping in Basic

Wow, thanks of all of the responses. Unfortunately, none of them will seem to 
work on UniData. I will be using NAP on UniVerse.

PAUSE and WAKE, I had not heard of. This is only on UniData so not a UniVerse 
option. It would seem to be a good way to go, except for if the phantom process 
aborts, the WAKE is never executed and the invoking process (UniObjects 
subroutine) hangs forever.

David's openSocket suggestion does not wait at all if the socket can be opened. 
If it cannot (for example host name is bad), the timeout is sometimes much 
longer, probably due to DNS lookup of the bad host name.

I tried these examples in the code below. The results are show below the code.


When I run this, using NAP 250, I get 4 times the same, then another 4 times 
the same etc. This seems to show NAP 250 does sleep for a quarter of a second. 

Doing NAP 1 for 2000 iterations took 31 seconds. Probably due to overhead of 
setting up NAP 2000 times.

The openSocket came right back all the time.

Any other ideas, I am open to testing.

Again, thanks for all of the responses!


Doug Farmer
952-417-5225
Program Listing

0001   PRINT 'Nap 250'
0002   FOR IDX = 1 TO 20
0003  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0004  NAP 250
0005   NEXT IDX
0006   PRINT 'Start of 2000'
0007   PRINT OCONV(TIME(),'MTS')
0008   FOR IDX = 1 TO 2000
0009  NAP 1
0010   NEXT IDX
0011   PRINT OCONV(TIME(),'MTS')
0012   PRINT 'DONE WITH 2000'
0013   PRINT 'Open Socket'
0014   FOR IDX = 1 TO 20
0015  SleepTime = 250
0016  ERR = openSocket('loopback',25,1,SleepTime,HBUFF)
0017  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0018   NEXT IDX

Output from Program
Nap 250
 1 09:11:29
 2 09:11:29
 3 09:11:29
 4 09:11:30
 5 09:11:30
 6 09:11:30
 7 09:11:30
 8 09:11:31
 9 09:11:31
10 09:11:31
11 09:11:31
12 09:11:32
13 09:11:32
14 09:11:32
15 09:11:32
16 09:11:33
17 09:11:33
18 09:11:33
19 09:11:33
20 09:11:34
Start of 2000
09:11:34
09:12:05
DONE WITH 2000
Open Socket
 1 09:12:05
 2 09:12:05
 3 09:12:05
 4 09:12:05
 5 09:12:05
 6 09:12:05
 7 09:12:05
 8 09:12:05
 9 09:12:05
10 09:12:05
11 09:12:05
12 09:12:05
13 09:12:05
14 09:12:05
15 09:12:05
16 09:12:05
17 09:12:05
18 09:12:05
19 09:12:05
20 09:12:05



This message has been scanned for malware by Websense. www.websense.com 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Click 
https://www.mailcontrol.com/sr/1szQtvpiZq3GX2PQPOmvUnhXC4dDtPIXveiVUAHqQ1BlKLUMIo4Fzoxbcf5uwsOEYPnWx2HtmVmg1M3YVHc55g==
  to report this email as spam.
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-28 Thread Jeff Schasny
Something I ran into with long ago in Universe with sleep/nap. Both use 
the current TIME() as the starting point (which is milliseconds since 
midnight) and then waits for your desired period. If your sleep/nap 
period rolls over midnight your process will hang because its waiting to 
count to a number it never gets to.


Doug Farmer wrote:

Wow, thanks of all of the responses. Unfortunately, none of them will seem to 
work on UniData. I will be using NAP on UniVerse.

PAUSE and WAKE, I had not heard of. This is only on UniData so not a UniVerse 
option. It would seem to be a good way to go, except for if the phantom process 
aborts, the WAKE is never executed and the invoking process (UniObjects 
subroutine) hangs forever.

David's openSocket suggestion does not wait at all if the socket can be opened. 
If it cannot (for example host name is bad), the timeout is sometimes much 
longer, probably due to DNS lookup of the bad host name.

I tried these examples in the code below. The results are show below the code.


When I run this, using NAP 250, I get 4 times the same, then another 4 times the same etc. This seems to show NAP 250 does sleep for a quarter of a second. 


Doing NAP 1 for 2000 iterations took 31 seconds. Probably due to overhead of 
setting up NAP 2000 times.

The openSocket came right back all the time.

Any other ideas, I am open to testing.

Again, thanks for all of the responses!


Doug Farmer
952-417-5225
Program Listing

0001   PRINT 'Nap 250'
0002   FOR IDX = 1 TO 20
0003  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0004  NAP 250
0005   NEXT IDX
0006   PRINT 'Start of 2000'
0007   PRINT OCONV(TIME(),'MTS')
0008   FOR IDX = 1 TO 2000
0009  NAP 1
0010   NEXT IDX
0011   PRINT OCONV(TIME(),'MTS')
0012   PRINT 'DONE WITH 2000'
0013   PRINT 'Open Socket'
0014   FOR IDX = 1 TO 20
0015  SleepTime = 250
0016  ERR = openSocket('loopback',25,1,SleepTime,HBUFF)
0017  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0018   NEXT IDX

Output from Program
Nap 250
 1 09:11:29
 2 09:11:29
 3 09:11:29
 4 09:11:30
 5 09:11:30
 6 09:11:30
 7 09:11:30
 8 09:11:31
 9 09:11:31
10 09:11:31
11 09:11:31
12 09:11:32
13 09:11:32
14 09:11:32
15 09:11:32
16 09:11:33
17 09:11:33
18 09:11:33
19 09:11:33
20 09:11:34
Start of 2000
09:11:34
09:12:05
DONE WITH 2000
Open Socket
 1 09:12:05
 2 09:12:05
 3 09:12:05
 4 09:12:05
 5 09:12:05
 6 09:12:05
 7 09:12:05
 8 09:12:05
 9 09:12:05
10 09:12:05
11 09:12:05
12 09:12:05
13 09:12:05
14 09:12:05
15 09:12:05
16 09:12:05
17 09:12:05
18 09:12:05
19 09:12:05
20 09:12:05



This message has been scanned for malware by Websense. www.websense.com
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

  


--

Jeff Schasny - Denver, Co, USA
jschasny at gmail dot com

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-28 Thread Wjhonson
Your napping for a quarter of a second is too long :)
I was saying that NAP is quantized.  You can't actually NAP for a microsecond.
So loop 1000 and NAP 1
By the way you can return the microseconds, why are you doing MTS

 
I never bothered to dig into it, to see on what it's quantized.

Without MTS you can see the microseconds.

 

 

-Original Message-
From: Doug Farmer dfar...@epicor.com
To: 'U2 Users List' u2-users@listserver.u2ug.org
Sent: Fri, Dec 28, 2012 7:22 am
Subject: Re: [U2] Sleeping in Basic


Wow, thanks of all of the responses. Unfortunately, none of them will seem to 
work on UniData. I will be using NAP on UniVerse.

PAUSE and WAKE, I had not heard of. This is only on UniData so not a UniVerse 
option. It would seem to be a good way to go, except for if the phantom process 
aborts, the WAKE is never executed and the invoking process (UniObjects 
subroutine) hangs forever.

David's openSocket suggestion does not wait at all if the socket can be opened. 
If it cannot (for example host name is bad), the timeout is sometimes much 
longer, probably due to DNS lookup of the bad host name.

I tried these examples in the code below. The results are show below the code.


When I run this, using NAP 250, I get 4 times the same, then another 4 times 
the 
same etc. This seems to show NAP 250 does sleep for a quarter of a second. 

Doing NAP 1 for 2000 iterations took 31 seconds. Probably due to overhead of 
setting up NAP 2000 times.

The openSocket came right back all the time.

Any other ideas, I am open to testing.

Again, thanks for all of the responses!


Doug Farmer
952-417-5225
Program Listing

0001   PRINT 'Nap 250'
0002   FOR IDX = 1 TO 20
0003  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0004  NAP 250
0005   NEXT IDX
0006   PRINT 'Start of 2000'
0007   PRINT OCONV(TIME(),'MTS')
0008   FOR IDX = 1 TO 2000
0009  NAP 1
0010   NEXT IDX
0011   PRINT OCONV(TIME(),'MTS')
0012   PRINT 'DONE WITH 2000'
0013   PRINT 'Open Socket'
0014   FOR IDX = 1 TO 20
0015  SleepTime = 250
0016  ERR = openSocket('loopback',25,1,SleepTime,HBUFF)
0017  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0018   NEXT IDX

Output from Program
Nap 250
 1 09:11:29
 2 09:11:29
 3 09:11:29
 4 09:11:30
 5 09:11:30
 6 09:11:30
 7 09:11:30
 8 09:11:31
 9 09:11:31
10 09:11:31
11 09:11:31
12 09:11:32
13 09:11:32
14 09:11:32
15 09:11:32
16 09:11:33
17 09:11:33
18 09:11:33
19 09:11:33
20 09:11:34
Start of 2000
09:11:34
09:12:05
DONE WITH 2000
Open Socket
 1 09:12:05
 2 09:12:05
 3 09:12:05
 4 09:12:05
 5 09:12:05
 6 09:12:05
 7 09:12:05
 8 09:12:05
 9 09:12:05
10 09:12:05
11 09:12:05
12 09:12:05
13 09:12:05
14 09:12:05
15 09:12:05
16 09:12:05
17 09:12:05
18 09:12:05
19 09:12:05
20 09:12:05



This message has been scanned for malware by Websense. www.websense.com
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-28 Thread Doug Farmer
I guess I am confused on the definition of quantized. NAP 250 seems to do 
what I want. Doing a LOOP 1000 and NAP 1 inside the loop, makes it takes quite 
a few seconds, where I would assume it would be 1 second (1000 x 1 millisecond 
- 1 second). However, loop 20 with NAP 250 in the loop takes 5 seconds, which 
is what I would expect (20 x 250 milliseconds = 5 seconds).

Also, the OCONV documentation only shows OCONV(num.expr,MT[H][S][c]) as a 
syntax. No option for displaying milliseconds. The only why I know to do that 
is to use SYSTEM(12).

I guess I was just using TIME() not SYSTEM(12) as it was easier to visually 
scan.

Doug Farmer
952-417-5225


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson
Sent: Friday, December 28, 2012 11:16 AM
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Sleeping in Basic

Your napping for a quarter of a second is too long :) I was saying that NAP is 
quantized.  You can't actually NAP for a microsecond.
So loop 1000 and NAP 1
By the way you can return the microseconds, why are you doing MTS

 
I never bothered to dig into it, to see on what it's quantized.

Without MTS you can see the microseconds.

 

 

-Original Message-
From: Doug Farmer dfar...@epicor.com
To: 'U2 Users List' u2-users@listserver.u2ug.org
Sent: Fri, Dec 28, 2012 7:22 am
Subject: Re: [U2] Sleeping in Basic


Wow, thanks of all of the responses. Unfortunately, none of them will seem to 
work on UniData. I will be using NAP on UniVerse.

PAUSE and WAKE, I had not heard of. This is only on UniData so not a UniVerse 
option. It would seem to be a good way to go, except for if the phantom process 
aborts, the WAKE is never executed and the invoking process (UniObjects
subroutine) hangs forever.

David's openSocket suggestion does not wait at all if the socket can be opened. 
If it cannot (for example host name is bad), the timeout is sometimes much 
longer, probably due to DNS lookup of the bad host name.

I tried these examples in the code below. The results are show below the code.


When I run this, using NAP 250, I get 4 times the same, then another 4 times 
the same etc. This seems to show NAP 250 does sleep for a quarter of a second. 

Doing NAP 1 for 2000 iterations took 31 seconds. Probably due to overhead of 
setting up NAP 2000 times.

The openSocket came right back all the time.

Any other ideas, I am open to testing.

Again, thanks for all of the responses!


Doug Farmer
952-417-5225
Program Listing

0001   PRINT 'Nap 250'
0002   FOR IDX = 1 TO 20
0003  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0004  NAP 250
0005   NEXT IDX
0006   PRINT 'Start of 2000'
0007   PRINT OCONV(TIME(),'MTS')
0008   FOR IDX = 1 TO 2000
0009  NAP 1
0010   NEXT IDX
0011   PRINT OCONV(TIME(),'MTS')
0012   PRINT 'DONE WITH 2000'
0013   PRINT 'Open Socket'
0014   FOR IDX = 1 TO 20
0015  SleepTime = 250
0016  ERR = openSocket('loopback',25,1,SleepTime,HBUFF)
0017  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0018   NEXT IDX

Output from Program
Nap 250
 1 09:11:29
 2 09:11:29
 3 09:11:29
 4 09:11:30
 5 09:11:30
 6 09:11:30
 7 09:11:30
 8 09:11:31
 9 09:11:31
10 09:11:31
11 09:11:31
12 09:11:32
13 09:11:32
14 09:11:32
15 09:11:32
16 09:11:33
17 09:11:33
18 09:11:33
19 09:11:33
20 09:11:34
Start of 2000
09:11:34
09:12:05
DONE WITH 2000
Open Socket
 1 09:12:05
 2 09:12:05
 3 09:12:05
 4 09:12:05
 5 09:12:05
 6 09:12:05
 7 09:12:05
 8 09:12:05
 9 09:12:05
10 09:12:05
11 09:12:05
12 09:12:05
13 09:12:05
14 09:12:05
15 09:12:05
16 09:12:05
17 09:12:05
18 09:12:05
19 09:12:05
20 09:12:05



This message has been scanned for malware by Websense. www.websense.com 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Click 
https://www.mailcontrol.com/sr/6lVGIXxG7qjGX2PQPOmvUlpAWghQWIvzb3YGjzkT!7MOUCUpiqnJJoGBzmYgl5U4YPnWx2HtmVnUfE+mA+MlhQ==
  to report this email as spam.
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-28 Thread Wjhonson
Just time by itself, with *no* conversion at all :)
You don't need a conversion to display the output of TIME()
Quantized, means it comes in little packets, and the packet size is bigger 
than 1 is what I'm saying.


 

 

 

-Original Message-
From: Doug Farmer dfar...@epicor.com
To: 'U2 Users List' u2-users@listserver.u2ug.org
Sent: Fri, Dec 28, 2012 9:32 am
Subject: Re: [U2] Sleeping in Basic


I guess I am confused on the definition of quantized. NAP 250 seems to do 
what 
I want. Doing a LOOP 1000 and NAP 1 inside the loop, makes it takes quite a few 
seconds, where I would assume it would be 1 second (1000 x 1 millisecond - 1 
second). However, loop 20 with NAP 250 in the loop takes 5 seconds, which is 
what I would expect (20 x 250 milliseconds = 5 seconds).

Also, the OCONV documentation only shows OCONV(num.expr,MT[H][S][c]) as a 
syntax. No option for displaying milliseconds. The only why I know to do that 
is 
to use SYSTEM(12).

I guess I was just using TIME() not SYSTEM(12) as it was easier to visually 
scan.

Doug Farmer
952-417-5225


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] 
On Behalf Of Wjhonson
Sent: Friday, December 28, 2012 11:16 AM
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Sleeping in Basic

Your napping for a quarter of a second is too long :) I was saying that NAP is 
quantized.  You can't actually NAP for a microsecond.
So loop 1000 and NAP 1
By the way you can return the microseconds, why are you doing MTS

 
I never bothered to dig into it, to see on what it's quantized.

Without MTS you can see the microseconds.

 

 

-Original Message-
From: Doug Farmer dfar...@epicor.com
To: 'U2 Users List' u2-users@listserver.u2ug.org
Sent: Fri, Dec 28, 2012 7:22 am
Subject: Re: [U2] Sleeping in Basic


Wow, thanks of all of the responses. Unfortunately, none of them will seem to 
work on UniData. I will be using NAP on UniVerse.

PAUSE and WAKE, I had not heard of. This is only on UniData so not a UniVerse 
option. It would seem to be a good way to go, except for if the phantom process 
aborts, the WAKE is never executed and the invoking process (UniObjects
subroutine) hangs forever.

David's openSocket suggestion does not wait at all if the socket can be opened. 
If it cannot (for example host name is bad), the timeout is sometimes much 
longer, probably due to DNS lookup of the bad host name.

I tried these examples in the code below. The results are show below the code.


When I run this, using NAP 250, I get 4 times the same, then another 4 times 
the 
same etc. This seems to show NAP 250 does sleep for a quarter of a second. 

Doing NAP 1 for 2000 iterations took 31 seconds. Probably due to overhead of 
setting up NAP 2000 times.

The openSocket came right back all the time.

Any other ideas, I am open to testing.

Again, thanks for all of the responses!


Doug Farmer
952-417-5225
Program Listing

0001   PRINT 'Nap 250'
0002   FOR IDX = 1 TO 20
0003  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0004  NAP 250
0005   NEXT IDX
0006   PRINT 'Start of 2000'
0007   PRINT OCONV(TIME(),'MTS')
0008   FOR IDX = 1 TO 2000
0009  NAP 1
0010   NEXT IDX
0011   PRINT OCONV(TIME(),'MTS')
0012   PRINT 'DONE WITH 2000'
0013   PRINT 'Open Socket'
0014   FOR IDX = 1 TO 20
0015  SleepTime = 250
0016  ERR = openSocket('loopback',25,1,SleepTime,HBUFF)
0017  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0018   NEXT IDX

Output from Program
Nap 250
 1 09:11:29
 2 09:11:29
 3 09:11:29
 4 09:11:30
 5 09:11:30
 6 09:11:30
 7 09:11:30
 8 09:11:31
 9 09:11:31
10 09:11:31
11 09:11:31
12 09:11:32
13 09:11:32
14 09:11:32
15 09:11:32
16 09:11:33
17 09:11:33
18 09:11:33
19 09:11:33
20 09:11:34
Start of 2000
09:11:34
09:12:05
DONE WITH 2000
Open Socket
 1 09:12:05
 2 09:12:05
 3 09:12:05
 4 09:12:05
 5 09:12:05
 6 09:12:05
 7 09:12:05
 8 09:12:05
 9 09:12:05
10 09:12:05
11 09:12:05
12 09:12:05
13 09:12:05
14 09:12:05
15 09:12:05
16 09:12:05
17 09:12:05
18 09:12:05
19 09:12:05
20 09:12:05



This message has been scanned for malware by Websense. www.websense.com 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Click 
https://www.mailcontrol.com/sr/6lVGIXxG7qjGX2PQPOmvUlpAWghQWIvzb3YGjzkT!7MOUCUpiqnJJoGBzmYgl5U4YPnWx2HtmVnUfE+mA+MlhQ==
  
to report this email as spam.
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-28 Thread Daniel McGrath
It is platform specific. For example, Windows will only tell you time at a 
resolution of 16 milliseconds. Since U2 uses the underlying OS time mechanism, 
that means its resolution is limited by the OS's.

So, LOOP 1000 and NAP 1 will probably take somewhere in the range of 1-16 
seconds, depending on many underlying OS differences.
Loop 1 NAP 1000 will probably take 1000 milliseconds, give or take a 16 (or 8?)

Regards,
Dan


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson
Sent: Friday, December 28, 2012 10:16 AM
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Sleeping in Basic

Your napping for a quarter of a second is too long :) I was saying that NAP is 
quantized.  You can't actually NAP for a microsecond.
So loop 1000 and NAP 1
By the way you can return the microseconds, why are you doing MTS

 
I never bothered to dig into it, to see on what it's quantized.

Without MTS you can see the microseconds.

 

 

-Original Message-
From: Doug Farmer dfar...@epicor.com
To: 'U2 Users List' u2-users@listserver.u2ug.org
Sent: Fri, Dec 28, 2012 7:22 am
Subject: Re: [U2] Sleeping in Basic


Wow, thanks of all of the responses. Unfortunately, none of them will seem to 
work on UniData. I will be using NAP on UniVerse.

PAUSE and WAKE, I had not heard of. This is only on UniData so not a UniVerse 
option. It would seem to be a good way to go, except for if the phantom process 
aborts, the WAKE is never executed and the invoking process (UniObjects
subroutine) hangs forever.

David's openSocket suggestion does not wait at all if the socket can be opened. 
If it cannot (for example host name is bad), the timeout is sometimes much 
longer, probably due to DNS lookup of the bad host name.

I tried these examples in the code below. The results are show below the code.


When I run this, using NAP 250, I get 4 times the same, then another 4 times 
the same etc. This seems to show NAP 250 does sleep for a quarter of a second. 

Doing NAP 1 for 2000 iterations took 31 seconds. Probably due to overhead of 
setting up NAP 2000 times.

The openSocket came right back all the time.

Any other ideas, I am open to testing.

Again, thanks for all of the responses!


Doug Farmer
952-417-5225
Program Listing

0001   PRINT 'Nap 250'
0002   FOR IDX = 1 TO 20
0003  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0004  NAP 250
0005   NEXT IDX
0006   PRINT 'Start of 2000'
0007   PRINT OCONV(TIME(),'MTS')
0008   FOR IDX = 1 TO 2000
0009  NAP 1
0010   NEXT IDX
0011   PRINT OCONV(TIME(),'MTS')
0012   PRINT 'DONE WITH 2000'
0013   PRINT 'Open Socket'
0014   FOR IDX = 1 TO 20
0015  SleepTime = 250
0016  ERR = openSocket('loopback',25,1,SleepTime,HBUFF)
0017  PRINT IDX R#2:' ':OCONV(TIME(),'MTS')
0018   NEXT IDX

Output from Program
Nap 250
 1 09:11:29
 2 09:11:29
 3 09:11:29
 4 09:11:30
 5 09:11:30
 6 09:11:30
 7 09:11:30
 8 09:11:31
 9 09:11:31
10 09:11:31
11 09:11:31
12 09:11:32
13 09:11:32
14 09:11:32
15 09:11:32
16 09:11:33
17 09:11:33
18 09:11:33
19 09:11:33
20 09:11:34
Start of 2000
09:11:34
09:12:05
DONE WITH 2000
Open Socket
 1 09:12:05
 2 09:12:05
 3 09:12:05
 4 09:12:05
 5 09:12:05
 6 09:12:05
 7 09:12:05
 8 09:12:05
 9 09:12:05
10 09:12:05
11 09:12:05
12 09:12:05
13 09:12:05
14 09:12:05
15 09:12:05
16 09:12:05
17 09:12:05
18 09:12:05
19 09:12:05
20 09:12:05



This message has been scanned for malware by Websense. www.websense.com 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


[U2] Sleeping in Basic

2012-12-27 Thread Doug Farmer
Happy holidays all,

I just want to make sure I did not miss something over the U2 releases. Since 
the Microdata Reality days, I have used SLEEP nn to sleep for nn seconds. 
Simple, usually does the trick.

But in today's gotta have it now, I won't wait, environment, a second is 
sometimes way too long.

Is there anything I missed over the last few years to sleep for less than a 
second? I am executing a phantom command from a UniObjects subroutine call and 
waiting for it to finish. I am using a phantom, just in case the program aborts 
or hangs. I am not in control of what code is being run, it could try to read 
or write to an unopened file for example. If the program does hang, I get the 
dreaded Error 30102 message (not helpful at all).

In most cases, the program reads the data it needs and finishes in less than a 
second.  The UniObjects subroutine then writes a flag I can pick up to see that 
the data is ready to return to the UniObjects client.

I don't want the subroutine constantly looping and reading for the flag. This 
would take a lot of the CPU cycles. But, I don't want to wait up to a second to 
see that the phantom has completed.

Any ideas would be helpful. This needs to run on both UniData and UniVerse.

Have a great New Year. One more year older for us experienced developers in 
the PICK community. (circa 1978)

Doug Farmer


This message has been scanned for malware by Websense. www.websense.com
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-27 Thread Wjhonson
What you really need is the ability to POKE.
So you execute the phantom and return it's handle to another process (PID)
The waiter stops at a regular INPUT.
The responder then could POKE something carriage return to the waiter's INPUT
That would be instant reaction, no wait, and no false starting.

Did it on OA on Sequoia because they had a POKE.

 

 

 

-Original Message-
From: Doug Farmer dfar...@epicor.com
To: 'U2 Users List' u2-users@listserver.u2ug.org
Sent: Thu, Dec 27, 2012 1:56 pm
Subject: [U2] Sleeping in Basic


Happy holidays all,

I just want to make sure I did not miss something over the U2 releases. Since 
the Microdata Reality days, I have used SLEEP nn to sleep for nn seconds. 
Simple, usually does the trick.

But in today's gotta have it now, I won't wait, environment, a second is 
sometimes way too long.

Is there anything I missed over the last few years to sleep for less than a 
second? I am executing a phantom command from a UniObjects subroutine call and 
waiting for it to finish. I am using a phantom, just in case the program aborts 
or hangs. I am not in control of what code is being run, it could try to read 
or 
write to an unopened file for example. If the program does hang, I get the 
dreaded Error 30102 message (not helpful at all).

In most cases, the program reads the data it needs and finishes in less than a 
second.  The UniObjects subroutine then writes a flag I can pick up to see that 
the data is ready to return to the UniObjects client.

I don't want the subroutine constantly looping and reading for the flag. This 
would take a lot of the CPU cycles. But, I don't want to wait up to a second to 
see that the phantom has completed.

Any ideas would be helpful. This needs to run on both UniData and UniVerse.

Have a great New Year. One more year older for us experienced developers in 
the PICK community. (circa 1978)

Doug Farmer


This message has been scanned for malware by Websense. www.websense.com
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-27 Thread Brian Whitehorn
If my memory serves correct, I believe on UniData it's RQM .

-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Don Robinson
Sent: Friday, 28 December 2012 9:07 AM
To: U2 Users List
Subject: Re: [U2] Sleeping in Basic

Doug,
 
If Universe, look at NAP, it does milliseconds.
 
Can't remember what it is in Unidata, maybe SLEEPM?
 

Don 
 
From: Doug Farmer dfar...@epicor.com
To: 'U2 Users List' u2-users@listserver.u2ug.org
Sent: Thursday, December 27, 2012 4:56 PM
Subject: [U2] Sleeping in Basic

Happy holidays all,

I just want to make sure I did not miss something over the U2 releases. Since 
the Microdata Reality days, I have used SLEEP nn to sleep for nn seconds. 
Simple, usually does the trick.

But in today's gotta have it now, I won't wait, environment, a second is 
sometimes way too long.

Is there anything I missed over the last few years to sleep for less than a 
second? I am executing a phantom command from a UniObjects subroutine call and 
waiting for it to finish. I am using a phantom, just in case the program aborts 
or hangs. I am not in control of what code is being run, it could try to read 
or write to an unopened file for example. If the program does hang, I get the 
dreaded Error 30102 message (not helpful at all).

In most cases, the program reads the data it needs and finishes in less than a 
second.  The UniObjects subroutine then writes a flag I can pick up to see that 
the data is ready to return to the UniObjects client.

I don't want the subroutine constantly looping and reading for the flag. This 
would take a lot of the CPU cycles. But, I don't want to wait up to a second to 
see that the phantom has completed.

Any ideas would be helpful. This needs to run on both UniData and UniVerse.

Have a great New Year. One more year older for us experienced developers in 
the PICK community. (circa 1978)

Doug Farmer


This message has been scanned for malware by Websense. http://www.websense.com/ 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-27 Thread Doug Farmer
Thanks for this tip on NAP, The documentation does say it sleeps for 
milliseconds. I tried it and it works. 

RQM for UniData says it does the same as sleep.

Well 1/2 of the problem solved! Still looking or a UniData answer.


Doug Farmer
952-417-5225


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Whitehorn
Sent: Thursday, December 27, 2012 4:12 PM
To: U2 Users List
Subject: Re: [U2] Sleeping in Basic

If my memory serves correct, I believe on UniData it's RQM .

-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Don Robinson
Sent: Friday, 28 December 2012 9:07 AM
To: U2 Users List
Subject: Re: [U2] Sleeping in Basic

Doug,
 
If Universe, look at NAP, it does milliseconds.
 
Can't remember what it is in Unidata, maybe SLEEPM?
 

Don 
 
From: Doug Farmer dfar...@epicor.com
To: 'U2 Users List' u2-users@listserver.u2ug.org
Sent: Thursday, December 27, 2012 4:56 PM
Subject: [U2] Sleeping in Basic

Happy holidays all,

I just want to make sure I did not miss something over the U2 releases. Since 
the Microdata Reality days, I have used SLEEP nn to sleep for nn seconds. 
Simple, usually does the trick.

But in today's gotta have it now, I won't wait, environment, a second is 
sometimes way too long.

Is there anything I missed over the last few years to sleep for less than a 
second? I am executing a phantom command from a UniObjects subroutine call and 
waiting for it to finish. I am using a phantom, just in case the program aborts 
or hangs. I am not in control of what code is being run, it could try to read 
or write to an unopened file for example. If the program does hang, I get the 
dreaded Error 30102 message (not helpful at all).

In most cases, the program reads the data it needs and finishes in less than a 
second.  The UniObjects subroutine then writes a flag I can pick up to see that 
the data is ready to return to the UniObjects client.

I don't want the subroutine constantly looping and reading for the flag. This 
would take a lot of the CPU cycles. But, I don't want to wait up to a second to 
see that the phantom has completed.

Any ideas would be helpful. This needs to run on both UniData and UniVerse.

Have a great New Year. One more year older for us experienced developers in 
the PICK community. (circa 1978)

Doug Farmer


This message has been scanned for malware by Websense. http://www.websense.com/ 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Click 
https://www.mailcontrol.com/sr/Tv+r55u8HfPGX2PQPOmvUhQdr9UqjTk1M2f99tr8WdvOye2VhyKlGIdl6QC!L7u!0ZOMv8J8HrOrbIY9K1KtKg==
  to report this email as spam.
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-27 Thread Wjhonson
I would be careful of believing NAP :)
The sleeping is, I believe, based entirely on the time slicing and clock 
interrupting ability, and so dependent on that mechanism internally of the 
underlying O/S.

I have found, on various implementations, that NAP doesn't actually support any 
possible delay, but only quantized results.

Try looping for 1000 iterations on NAP 1 and then spewing TIME() and you'll see.


 

 

 

-Original Message-
From: Doug Farmer dfar...@epicor.com
To: 'U2 Users List' u2-users@listserver.u2ug.org
Sent: Thu, Dec 27, 2012 2:47 pm
Subject: Re: [U2] Sleeping in Basic


Thanks for this tip on NAP, The documentation does say it sleeps for 
milliseconds. I tried it and it works. 

RQM for UniData says it does the same as sleep.

Well 1/2 of the problem solved! Still looking or a UniData answer.


Doug Farmer
952-417-5225


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] 
On Behalf Of Brian Whitehorn
Sent: Thursday, December 27, 2012 4:12 PM
To: U2 Users List
Subject: Re: [U2] Sleeping in Basic

If my memory serves correct, I believe on UniData it's RQM .

-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] 
On Behalf Of Don Robinson
Sent: Friday, 28 December 2012 9:07 AM
To: U2 Users List
Subject: Re: [U2] Sleeping in Basic

Doug,
 
If Universe, look at NAP, it does milliseconds.
 
Can't remember what it is in Unidata, maybe SLEEPM?
 

Don 
 
From: Doug Farmer dfar...@epicor.com
To: 'U2 Users List' u2-users@listserver.u2ug.org
Sent: Thursday, December 27, 2012 4:56 PM
Subject: [U2] Sleeping in Basic

Happy holidays all,

I just want to make sure I did not miss something over the U2 releases. Since 
the Microdata Reality days, I have used SLEEP nn to sleep for nn seconds. 
Simple, usually does the trick.

But in today's gotta have it now, I won't wait, environment, a second is 
sometimes way too long.

Is there anything I missed over the last few years to sleep for less than a 
second? I am executing a phantom command from a UniObjects subroutine call and 
waiting for it to finish. I am using a phantom, just in case the program aborts 
or hangs. I am not in control of what code is being run, it could try to read 
or 
write to an unopened file for example. If the program does hang, I get the 
dreaded Error 30102 message (not helpful at all).

In most cases, the program reads the data it needs and finishes in less than a 
second.  The UniObjects subroutine then writes a flag I can pick up to see that 
the data is ready to return to the UniObjects client.

I don't want the subroutine constantly looping and reading for the flag. This 
would take a lot of the CPU cycles. But, I don't want to wait up to a second to 
see that the phantom has completed.

Any ideas would be helpful. This needs to run on both UniData and UniVerse.

Have a great New Year. One more year older for us experienced developers in 
the PICK community. (circa 1978)

Doug Farmer


This message has been scanned for malware by Websense. http://www.websense.com/ 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Click 
https://www.mailcontrol.com/sr/Tv+r55u8HfPGX2PQPOmvUhQdr9UqjTk1M2f99tr8WdvOye2VhyKlGIdl6QC!L7u!0ZOMv8J8HrOrbIY9K1KtKg==
  
to report this email as spam.
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-27 Thread Allen Egerton
On 12/27/2012 4:56 PM, Doug Farmer wrote:
 Happy holidays all,
 
 I just want to make sure I did not miss something over the U2 releases. Since 
 the Microdata Reality days, I have used SLEEP nn to sleep for nn seconds. 
 Simple, usually does the trick.
snip

See if NAP is supported in your release...

-- 
Allen Egerton

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-27 Thread David A. Green
Doug this works for me in UniData:

   SLEEP.TIME = 500 ;* .5 Second
   ERR = openSocket(loopback, 25, 1, SLEEP.TIME, hBUFF)

David A. Green
(480) 813-1725
DAG Consulting

-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Farmer
Sent: Thursday, December 27, 2012 3:47 PM
To: 'U2 Users List'
Subject: Re: [U2] Sleeping in Basic

Thanks for this tip on NAP, The documentation does say it sleeps for
milliseconds. I tried it and it works. 

RQM for UniData says it does the same as sleep.

Well 1/2 of the problem solved! Still looking or a UniData answer.


Doug Farmer
952-417-5225


-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Whitehorn
Sent: Thursday, December 27, 2012 4:12 PM
To: U2 Users List
Subject: Re: [U2] Sleeping in Basic

If my memory serves correct, I believe on UniData it's RQM .

-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Don Robinson
Sent: Friday, 28 December 2012 9:07 AM
To: U2 Users List
Subject: Re: [U2] Sleeping in Basic

Doug,
 
If Universe, look at NAP, it does milliseconds.
 
Can't remember what it is in Unidata, maybe SLEEPM?
 

Don 
 
From: Doug Farmer dfar...@epicor.com
To: 'U2 Users List' u2-users@listserver.u2ug.org
Sent: Thursday, December 27, 2012 4:56 PM
Subject: [U2] Sleeping in Basic

Happy holidays all,

I just want to make sure I did not miss something over the U2 releases.
Since the Microdata Reality days, I have used SLEEP nn to sleep for nn
seconds. Simple, usually does the trick.

But in today's gotta have it now, I won't wait, environment, a second is
sometimes way too long.

Is there anything I missed over the last few years to sleep for less than a
second? I am executing a phantom command from a UniObjects subroutine call
and waiting for it to finish. I am using a phantom, just in case the program
aborts or hangs. I am not in control of what code is being run, it could try
to read or write to an unopened file for example. If the program does hang,
I get the dreaded Error 30102 message (not helpful at all).

In most cases, the program reads the data it needs and finishes in less than
a second.  The UniObjects subroutine then writes a flag I can pick up to see
that the data is ready to return to the UniObjects client.

I don't want the subroutine constantly looping and reading for the flag.
This would take a lot of the CPU cycles. But, I don't want to wait up to a
second to see that the phantom has completed.

Any ideas would be helpful. This needs to run on both UniData and UniVerse.

Have a great New Year. One more year older for us experienced developers
in the PICK community. (circa 1978)

Doug Farmer


This message has been scanned for malware by Websense.
http://www.websense.com/ ___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Click
https://www.mailcontrol.com/sr/Tv+r55u8HfPGX2PQPOmvUhQdr9UqjTk1M2f99tr8WdvOy
e2VhyKlGIdl6QC!L7u!0ZOMv8J8HrOrbIY9K1KtKg==  to report this email as spam.
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Sleeping in Basic

2012-12-27 Thread Daniel McGrath
UniVerse supports the NAP [milliseconds] command.

On UniData it would be more efficient to use the PAUSE [time] / WAKE command 
which gives you both an automated timeout as well as allowing you to continue 
as soon as the PHANTOM declares it okay.

You can switch between both of these in your code if you have an 
pre-compilation process or with creative uses of subroutines.

Cheers,

Dan McGrath
Product Manager
Rocket Software
4600 South Ulster Street  ·  Suite 1100  ·   Denver, CO 80237 ·  USA
T: +1 720 475 8098 · E: dmcgr...@rocketsoftware.com · W: u2.rocketsoftware.com


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Farmer
Sent: Thursday, December 27, 2012 2:56 PM
To: 'U2 Users List'
Subject: [U2] Sleeping in Basic

Happy holidays all,

I just want to make sure I did not miss something over the U2 releases. Since 
the Microdata Reality days, I have used SLEEP nn to sleep for nn seconds. 
Simple, usually does the trick.

But in today's gotta have it now, I won't wait, environment, a second is 
sometimes way too long.

Is there anything I missed over the last few years to sleep for less than a 
second? I am executing a phantom command from a UniObjects subroutine call and 
waiting for it to finish. I am using a phantom, just in case the program aborts 
or hangs. I am not in control of what code is being run, it could try to read 
or write to an unopened file for example. If the program does hang, I get the 
dreaded Error 30102 message (not helpful at all).

In most cases, the program reads the data it needs and finishes in less than a 
second.  The UniObjects subroutine then writes a flag I can pick up to see that 
the data is ready to return to the UniObjects client.

I don't want the subroutine constantly looping and reading for the flag. This 
would take a lot of the CPU cycles. But, I don't want to wait up to a second to 
see that the phantom has completed.

Any ideas would be helpful. This needs to run on both UniData and UniVerse.

Have a great New Year. One more year older for us experienced developers in 
the PICK community. (circa 1978)

Doug Farmer


This message has been scanned for malware by Websense. www.websense.com 
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users