Re: usleep()
Not quite; they did the minimim amount for POSIX and X-Open, then added stuff for later iterations of their UNIX certification. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List on behalf of Mike Schwab Sent: Friday, October 2, 2020 11:54 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: usleep() I think IBM did the minimum amount of work to qualify for the U.S. Government requirement for POSIX at one point and has not kept it up to date. On Fri, Oct 2, 2020 at 10:24 AM Thomas David Rivers wrote: > > Paul Gilmartin wrote: > > > > >> > >> > >What is IBM's rationale for supporting the deprecated usleep but not > >POSIX nanosleep on z/OS? > > > > https://secure-web.cisco.com/15ber4_2yl9qOXLoJC6r3enZh5QziAVC39L_snbERfZSOwZFHn-tPUvFtPPjNeP6J-fAnmc7zVBdb45A4VmZrFvek-ec24Rlfmw045YNkKgXTMLmr5bLh07-og-huGCRHRbDdSiEq0KHeu95pRw_Nk5k6VqEh7iFgeVdnMOVKrjkbH3X2-583UcfIup0vYE9qgWZznA0aqgyYuGxE76uNHIcgjLSDI-Sm_2ZyfY5JOwWKh2ZDZPgQxmhg6-zaXWWX0RjxdNgKR5XKOJV5_aNd-PF3vqd4TdiFW7wp6J-23m7-HOUy4XufdmPhSMiolqhEmRVWSjK6XgQnyO7etdCF72EngYc4lxoPDaR94QFZ0sGlyZgN6VtE_YQDiRyz7UHFStUPoXdhBLkZnSuA6tHxuIA22uSRaVO12GxNXZD-Z3hgI8X-842LAxp9Du7DCkQn/https%3A%2F%2Fpubs.opengroup.org%2Fonlinepubs%2F9699919799%2Ffunctions%2Fnanosleep.html#tag_16_350 > > > >And providing the idiosyncratic cond_timed_wait. > > > >-- gil > > > > > > > We added nanosleep() to the Dignus runtime library, and as IBM's > documentation > suggests, it uses the BPX cond_timed_wait function (there's a note there > saying you > can use BPX cond_timed_wait to implement nanosleep.) > > So - it would be pretty easy to add your own nanosleep if you want, just > call > cond_timed_wait as IBM says. > > nanosleep() is "newer" than the original POSIX-1, so I suppose until > some customer > submits an RFE for it it won't appear in the IBM C library. It's also > part of the REALTIME > section of POSIX, which IBM doesn't support. > > > > https://secure-web.cisco.com/1ta4flfdOYvdobDLBeabZZYwn_OUPyHpHl8NtZgg5L8XFEaQubjdtwe1iTgCUBB2pdY1dvJxnemRY9YA-pvr1EceoSF_itZ1yF2TyaMadI4ViFLY6qti_TQH1mfdxOvl_aL2Jknj2w5E1FM8C8fkjdPF-DmQG4ejsNjKuLjcGGz3wY3cclaWKw7bwGjN5t7CbJF9PXpj2KR82gutHMX7ljZQiBdssTeb4xSTdHM-iYpiDD3H5eXO5Yxs3J-KNztt8ofgaLN3dWzmcSrCd8cKsFVCYPd1aXrGBoFSscQZCUyZd91ZkuheKCZqqIqlveNAVgyht2UhSGdWWVEzFszXZkAROY77-kUYDoYQklmAJKyWZQ8OlDfz-L1wgiwn7JEFf5ZRxl819wrChSEpTZCyY70fRSbG_LHsSpOMvpFV8AtlAm6SUQlokHBao1SJeYY2y/https%3A%2F%2Fpubs.opengroup.org%2Fonlinepubs%2F009695399%2Ffunctions%2Fnanosleep.html > > z/OS doesn't really let you do the REALTIME timers (yet, I suppose), but > this function > is so handy and so common we added it to our runtime. > > And, in fact, our usleep() just invokes nanosleep() as is now common on > many implementations. > > >- Dave R. - > > -- > riv...@dignus.comWork: (919) 676-0847 > Get your mainframe programming tools at > http://secure-web.cisco.com/1okrNzXX_qhM0bnfpYvmM6qzMIRH75unmneSRpkqyhHLC0fQt7-7dhfy-KnIxZtJb7jteOx1US9bej8vB83gWy66ln-9Dx-PfWwpmjnHvqG6Okgf_7bDzYZwIi8M98Wpnh3h5xz1M5Y0_Msz7d56lpBKUx1jEomTwF0A_7YogAu_vvYEhwyCDYFMoKHN4G1jGW74SI0aKSfjm7bV-JMbQhiCHJmCKlVbPRTeNJ1TJM6a1y1NOmCbOEeil4I2Il1vkSa1-Y6avocBqnjcDYEOZpEt8Agy6rOjDMco3WHBS0euKVXcKdYH5In5UV_S9YB5PSDZ2YCbd3SN78JP2524RW_Sa3CV4DTl0Y9cDSV3r2yxD69yPkS67qhc0-x2aqATIoXPVZLDsBRXzByw7-NzrrSJ7iKWIFqDucONIdqwpqBzq7lmMEhMXlZVdT1ytY1cV/http%3A%2F%2Fwww.dignus.com > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- Mike A Schwab, Springfield IL USA Where do Forest Rangers go to get away from it all? -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: usleep()
I think IBM did the minimum amount of work to qualify for the U.S. Government requirement for POSIX at one point and has not kept it up to date. On Fri, Oct 2, 2020 at 10:24 AM Thomas David Rivers wrote: > > Paul Gilmartin wrote: > > > > >> > >> > >What is IBM's rationale for supporting the deprecated usleep but not > >POSIX nanosleep on z/OS? > > > > https://pubs.opengroup.org/onlinepubs/9699919799/functions/nanosleep.html#tag_16_350 > > > >And providing the idiosyncratic cond_timed_wait. > > > >-- gil > > > > > > > We added nanosleep() to the Dignus runtime library, and as IBM's > documentation > suggests, it uses the BPX cond_timed_wait function (there's a note there > saying you > can use BPX cond_timed_wait to implement nanosleep.) > > So - it would be pretty easy to add your own nanosleep if you want, just > call > cond_timed_wait as IBM says. > > nanosleep() is "newer" than the original POSIX-1, so I suppose until > some customer > submits an RFE for it it won't appear in the IBM C library. It's also > part of the REALTIME > section of POSIX, which IBM doesn't support. > > >https://pubs.opengroup.org/onlinepubs/009695399/functions/nanosleep.html > > z/OS doesn't really let you do the REALTIME timers (yet, I suppose), but > this function > is so handy and so common we added it to our runtime. > > And, in fact, our usleep() just invokes nanosleep() as is now common on > many implementations. > > >- Dave R. - > > -- > riv...@dignus.comWork: (919) 676-0847 > Get your mainframe programming tools at http://www.dignus.com > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- Mike A Schwab, Springfield IL USA Where do Forest Rangers go to get away from it all? -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: usleep()
Paul Gilmartin wrote: What is IBM's rationale for supporting the deprecated usleep but not POSIX nanosleep on z/OS? https://pubs.opengroup.org/onlinepubs/9699919799/functions/nanosleep.html#tag_16_350 And providing the idiosyncratic cond_timed_wait. -- gil We added nanosleep() to the Dignus runtime library, and as IBM's documentation suggests, it uses the BPX cond_timed_wait function (there's a note there saying you can use BPX cond_timed_wait to implement nanosleep.) So - it would be pretty easy to add your own nanosleep if you want, just call cond_timed_wait as IBM says. nanosleep() is "newer" than the original POSIX-1, so I suppose until some customer submits an RFE for it it won't appear in the IBM C library. It's also part of the REALTIME section of POSIX, which IBM doesn't support. https://pubs.opengroup.org/onlinepubs/009695399/functions/nanosleep.html z/OS doesn't really let you do the REALTIME timers (yet, I suppose), but this function is so handy and so common we added it to our runtime. And, in fact, our usleep() just invokes nanosleep() as is now common on many implementations. - Dave R. - -- riv...@dignus.comWork: (919) 676-0847 Get your mainframe programming tools at http://www.dignus.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Strange COBOL 6.2/3 problem: BASIS/COPYLOC/PDS fails
Thank you. I'm not crazy. Charles -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Peter Vels Sent: Thursday, October 1, 2020 3:00 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Strange COBOL 6.2/3 problem: BASIS/COPYLOC/PDS fails I can reproduce this with: PP 5655-EC6 IBM Enterprise COBOL for z/OS 6.1.0 P180612 Peter On Fri, 2 Oct 2020 at 00:46, Charles Mills wrote: > It appears to me that COBOL 6.2 or 6.3 fails a BASIS statement if there is > any COPYLOC in effect and SYSLIB is a PDS, but not if SYSLIB is a PDSE. > > The error is IGYLI0053-U A library read error occurred during "BASIS" > processing. No member was found or there was a bad block. > > //S1 EXEC PGM=IGYCRCTL,PARM='COPYLOC(MYUNIX,PATH("valid.unix.path")' > //SYSLIB DD DSN=PDS(E) containing GCOPYA,DISP=SHR > //SYSIN DD * >BASIS GCOPYA > /* > // remaining COBOL compile JCL > > Above works if SYSLIB is a PDSE but fails if it is a PDS. Works either way > if you remove the COPYLOC. COPY seems to work okay; only BASIS seems to > fail. > > Just tried a COPYLOC with a DSN rather than a PATH and it still fails. > > Would be curious what others think or if anyone wanted to try to duplicate. > This is in Dallas so no ability to open a PMR. > > Charles > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: usleep()
On 2020-10-01 8:16 PM, Paul Gilmartin wrote: On Wed, 30 Sep 2020 17:19:32 -0400, Phil Smith III wrote: The usleep() function in z/OS is documented as taking a single operand that must be less than 1M; on other platforms, it must be *at least* 1M. It also generates no error, and just returns instantly if you give it a value of 1M or more. This seems.poor. Anyone got any insight/guesses? Yes, I realize it's deprecated. What is IBM's rationale for supporting the deprecated usleep but not POSIX nanosleep on z/OS? https://pubs.opengroup.org/onlinepubs/9699919799/functions/nanosleep.html#tag_16_350 And providing the idiosyncratic cond_timed_wait. Probably the same rationale for supporting System V message queues/semaphores etc and not POSIX. -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN