If the code you posted is the code that you're running then I wouldn't expect a 
WTO; I would expect a CPU bound loop, and I already told you what your bug is. 
Until you fix it, there's no point in further discussion.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of 
Joseph Reichman <reichman...@gmail.com>
Sent: Sunday, January 6, 2019 3:51 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Concurrent Server Task Dispatch issue multitasking issue

I do WTO after the select timeout from both main and 4 subtasks once I do take 
socket read write and return to the select in the subtask that does the 
processing I don’t see the WTO from the main task I strongly believe this is a 
z/os issue



> On Jan 6, 2019, at 3:47 PM, Seymour J Metz <sme...@gmu.edu> wrote:
>
> No, it's not that simple. You have given no reason to believe that control is 
> not given to the main task. Fix your code to delete the CIB and then report 
> on what happens.
>
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
> ________________________________________
> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of 
> Joseph Reichman <reichman...@gmail.com>
> Sent: Sunday, January 6, 2019 3:32 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Concurrent Server Task Dispatch issue multitasking issue
>
> Once I process a takesocket set the bit pattern in RSNDMSK to the new socket
> Do a read then write go back to the select_loop control is never returned to 
> the main task it’s that simple
>
>
>
>> On Jan 6, 2019, at 3:28 PM, Seymour J Metz <sme...@gmu.edu> wrote:
>>
>> First, a style issue; you have an explicit numeric length in XC    
>> MY_ECB(104),MY_ECB rather than an implicit length, length attribute (L'FOO) 
>> or equated symbols. That will cause you problems if you ever have to change 
>> the size of the ECB list.
>>
>> Second, MODIFY is not the only type of CIB, If the COMM ECB is posted then 
>> you need to process and delete the CIB, regardless of type, and regardless 
>> of whether you recognize the text of a MODIFY. The types I would expect to 
>> see are START, MODIFY and STOP. I would do a WTO for any CIB my code didn't 
>> recognize, but you still need to delete it.
>>
>> What is SAVE14F? I hope it's not in your save area.
>>
>> Have you verified that every place you use  WAIT  ECB=MY_ECB you don't need 
>> an ECB list?
>>
>> --
>> Shmuel (Seymour J.) Metz
>> http://mason.gmu.edu/~smetz3
>>
>> ________________________________________
>> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of 
>> Joseph Reichman <reichman...@gmail.com>
>> Sent: Saturday, January 5, 2019 11:58 PM
>> To: IBM-MAIN@LISTSERV.UA.EDU
>> Subject: Re: Concurrent Server Task Dispatch issue multitasking issue
>>
>> Ok but this is going to be really long I do appreciate it the offer BTW I 
>> did the changes with the SELECTEX etc nothing worked
>> Main Task    Select   these are listener tasks If it’s for a new connection 
>> do a givesocket and post worker thread
>> Before I get any input from windows everything is fine meaning from WTO’s I 
>> can see the subtask timing out and the main task
>> After I post a worker thread which is one of the ECB’s in the WAIT list of 
>> the subtask then do TAKESOCKET IOCTL and READ  call a program to process the 
>> command
>> Write the response back to the Windows Client and then branch to the select 
>> loop
>> It is at this point I have a problem meaning the I don’t see the  wto’s from 
>> the main task timing out
>> Thanks
>>
>> ***********************************************************************
>> *                                                                     *
>> *        Issue SELECT TO SEE IF ANY PENDING CONNECTIONS               *
>> *                                                                     *
>> ***********************************************************************
>> SELECT_LOOP DS   0H
>>        XC    MY_ECB(104),MY_ECB      CLEAR ECB AREA
>>        MVC   COMMAND,=CL8'SELECT'
>>        XC    MY_PARM(MY_PARM_LEN),MY_PARM    CLEAR PARAMTER LIST
>>        EZASMI TYPE=SELECTEX,    Issue Macro                          X
>>              TIMEOUT=TIMEVAL,                                        X
>>              MAXSOC=MAXSOC1,    SPECIFY MAXIMUM NUMBER OF SOCKETS    X
>>              RSNDMSK=RSNDMSK,   READ MASK                            X
>>              RRETMSK=RRETMSK,   RETURN FROM READ                     X
>>              WSNDMSK=WSNDMSK,   WRITE MASK                           X
>>              WRETMSK=WRETMSK,   RETURN FROM WRITE                    X
>>              ESNDMSK=ESNDMSK,                                        X
>>              ERETMSK=ERETMSK,                                        X
>>              ERRNO=ERRNX,       (Specify ERRNO field)                X
>>              RETCODE=RETCODY,   (Specify RETCODE field)              X
>>              ECB=MY_ECB,        MAIN TASK EMB                        X
>>              ERROR=ERROR,       Abend if Macro error                 X
>>              MF=(E,MY_PARM)
>>
>>
>> *        WAIT  1,ECBLIST=ECB_LIST WAIT FOR SOMETHING TO HAPPEN
>> *
>>         L     R10,ECB_LIST+4     GET COMMUCATION ADDRSS ECB
>>         TM    0(R10),X'40'       MODIFY COMMAND POSTED
>>         BZ    CK_TCPIP           NO CHECK TCP IP
>> *        WTO   'PROCESSING MODIFY'
>> *
>> *        DBGRDIE LINKAGE=SVC
>> *
>>         L     R6,COMMADDR                 Get Communication Addr
>>         USING COM,R6
>>         L     R6,COMCIBPT                Point to CIB
>>         DROP  R6
>>         USING CIB,R6
>>         CLI   CIBVERB,CIBMODFY           Q. IS it a Modify
>>         BNE   SELECT_LOOP                no; Go back
>>         CLC   CIBDATA,=CL8'SHUTDOWN'     Shut Down
>>         BE    CLEAN_UP                  get out
>>         B     SELECT_LOOP
>> CK_TCPIP DS    0H
>>         CLC   RETCODY,=F'0'      A REAL TIME OUT OCCURED ???
>>         BNH   SELECT_LOOP
>> *        DBGRDIE LINKAGE=SVC
>> *----------------------------------------------------------*
>> *  if value is > 0 then this a read request to be handled  *
>> *  by subtask go back to main loop                         *
>> *----------------------------------------------------------*
>>         MVC   NOSELECT,RETCODY   Save Number of Selected Sockets
>>         BAL   XLNK,CK_SELECT     Check connections
>>         B     SELECT_LOOP
>>
>>            TITLE 'CHECK SELECTION ACTIVITY.......'
>> CK_SELECT DS   0H
>>         ST    R14,SAVE14F                 Save link register
>>         LA    R6,SOCKTBL                  Get Socket tbl
>>         USING SOCK_TBL,R6
>> SEL_LOOP    DS  0H
>> ***********************************************************************
>> *                                                                     *
>> *        check out Selected sockets                                    *
>> *                                                                     *
>> ***********************************************************************
>>         TPIMASK TEST,                                                 X
>>               MASK=RRETMSK,                                           X
>>               SD=TPIMSNO
>>         BNE   CK_EXCP
>>         L     R8,NOSELECT                 Number of Slected sockets
>>         BCTR  R8,0                          Got Down by one
>>         ST    R8,NOSELECT
>>         TM    TPIMSBIT,TPIMSLIS          *Is it our listener socket?
>>         BO    SPDOACC                    *- Yes, do an accept
>>         WTO   'ERROR SOCKET TBL '
>>         B     SEL_LOOP
>> SPDOACC  DS    0H
>> *
>>         EZASMI TYPE=ACCEPT,      Issue Macro                          X
>>               S=TPIMSNO,         Socket                               X
>>               NAME=CNAME,        (SOCKET NAME STRUCTURE)              X
>>               ERRNO=ERRNX,       (Specify ERRNO field)                X
>>               RETCODE=RETCODY,   (Specify RETCODE field)              X
>>               ECB=MY_ECB,        IN CASE WE ARE DOING EXITS OR ECBS   X
>>               ERROR=ERROR,       Abend if Macro error                 X
>>               MF=(E,MY_PARM)
>> *
>>
>>         WAIT  ECB=MY_ECB                               HAPPEN
>> *
>> *
>> *        WTO   'AFTER ACCEPT'
>> AFT_ACP  DS    0H
>>        L     R15,RETCODY
>>        C     R15,=F'0'
>>        BH    SET_MESS
>>        CLC   RETCODY,=F'-1'
>>        BNE   SET_A_ERR
>>        CLC   ERRNX,=F'35'
>>        BE    SET_MESS
>>        WTO    'ERROR ACCEPT MACRO'
>> SET_A_ERR DS   0H
>>         *--------------------------------------------------------*
>> *  SINCE THE ACCEPT SOCKET WILL NEVER BE USED TO READ    *
>> *  AS THE GIVE SOCKET WILL GENERATE A NEW SOCKET TO      *
>> *  TO DO COMMUNICATION WITH HER_CMD WILL WIPE OUT THIS   *
>> *  BIT IN THE RSNDMSK BLOCKING A READ UNTIL HRTCPRD      *
>> *  GENERATES A NEW SOCKET AND WE WILL CLOSE IT OUT       *
>> *  AT THAT POINT WE WILL TURN THIS BIT BACK ON           *
>> *--------------------------------------------------------*
>> *
>> ***********************************************************************
>> *                                                                     *
>> *        Issue GIVESOCKET                                             *
>> *                                                                     *
>> ***********************************************************************
>> WAIT_GIVE DS  0H
>>        DROP   R6
>>        USING SOCK_TBL,R6
>>        XC     MY_ECB,MY_ECB
>>         XC    MY_PARM(MY_PARM_LEN),MY_PARM    CLEAR PARAMTER LIST
>>         EZASMI TYPE=GIVESOCKET,  Issue INITAPI Macro                  X
>>               S=TPIMSNO,                                              X
>>               CLIENT=CLIENT,     SPECIFY SUBTASK IDENTIFIER           X
>>               ERRNO=ERRNX,       (Specify ERRNO field)                X
>>               RETCODE=RETCODY,   (Specify RETCODE field)              X
>>               ECB=MY_ECB,                                             X
>>               ERROR=ERROR,       ABEND IF ERROR ON MACRO              X
>>               MF=(E,MY_PARM)
>> *
>>
>>         WAIT   ECB=MY_ECB
>>         CLC   RETCODY,=F'0'
>>         BE    POST_TASK
>>         MVC   COMM,=CL8'GIVESOCK'
>>           BAL   R14,RCCHECK        --> DID IT WORK?
>> POST_TASK DS    0H
>>         OI     TPIMSBIT,TPIMSEXP
>> *
>>         L     R8,TPITSKAD
>> *
>>         USING THREAD_DSECT,R8
>>         MVC   SOCKET,TPIMSNO
>>         DROP  R6
>>         USING SOCK_TBL,R7
>> *        WTO   'GIVE SOCKET EXECUTED ..'
>> *        DBGRDIE LINKAGE=SVC
>>         XC     MY_ECB,MY_ECB
>>         XC    MY_PARM(MY_PARM_LEN),MY_PARM    CLEAR PARAMTER LIST
>> *
>>         MVC   COMM,=CL8'GIVESOCK'
>> *        BAL   R14,RCCHECK        --> DID IT WORK?
>> *        L     R1,ECB_ADDR          Get ecb address
>>         POST  (R1)                 Tell Task Work Waitting
>> *
>>         B     CK_SEL
>> CK_EXCP  DS    0H
>>         TPIMASK TEST,                                                 X
>>               MASK=ERETMSK,                                           X
>>               SD=TPIMSNO
>>         BNE   CK_SEL
>>         L     R15,NOSELECT     *Decrement number of
>>         BCTR  R15,0              *- selected socket descriptors
>>         ST    R15,NOSELECT * by one.
>>         TM    TPIMSBIT,TPIMSEXP *Did we expect it?
>>         BNO   CK_SEL          SPECLOSE *- Yes, server has
>>         EZASMI TYPE=CLOSE,       Issue Macro                          X
>>               S=TPIMSNO,         CLOSE THIS SOCKET                    X
>>               ERRNO=ERRNX,       (Specify ERRNO field)                X
>>               RETCODE=RETCODY,   (Specify RETCODE field)              X
>>               ECB=MY_ECB,                                             X
>> T               ERROR=ERROR,       Abend if Macro error                 X
>>              MF=(E,MY_PARM)
>>
>> *
>>        WAIT   ECB=MY_ECB
>> T CK_SEL   DS    0H
>>         L     R15,NOSELECT
>>         LTR   R15,R15               Any More Socket
>>         BNZ   SEL_LOOP
>>         L     R14,SAVE14F            RE-LOAD LINK REGISTERS      *
>>         BR    XLNK
>>
>> Subtask SELECT LOOP
>> *
>> SELECT_LOOP DS 0H
>>        XC    MY_ECBT(104),MY_ECBT
>>        EZASMI TYPE=SELECT,      Issue Macro                          X
>>              TIMEOUT=TIMEVAL,                                        X
>>              MAXSOC=MAXSNO,     SPECIFY MAXIMUM NUMBER OF SOCKETS    X
>>              RSNDMSK=RSNDMSK,   READ MASK                            X
>>              RRETMSK=RRETMSK,   RETURN FROM READ                     X
>>              ESNDMSK=ESNDMSK,                                        X
>>              ERETMSK=ERETMSK,                                        X
>>              ERRNO=ERRNO,       (Specify ERRNO field)                X
>>              RETCODE=RETCODE,   (Specify RETCODE field)              X
>>              ECB=MY_ECBT,       MAIN TASK EMB                        X
>>              ERROR=ERROR,       Abend if Macro error                 X
>>              TASK=MYTIE,                                             X
>>              MF=(E,MY_PARX)
>> *
>> *           Wait For Something to happen
>> *
>>                    *
>>         WAIT  1,ECBLIST=ECBLST     WAIT For Something top Happen
>> *
>>         L       R15,ECBLST         Get first ECB
>>         TM      0(R15),X'40'       End Task ?
>>         BO      RETURN             rETURN
>>         L       R15,ECBLST+8       Get Give/Take
>>         TM      0(R15),X'40'       GiveSocket Issued
>>         BO      CKGVE
>> *
>>         L       R15,ECBLST+4
>>         TM      0(R15),X'40'          Ecb Posted FromRecovery rtn
>>         BZ      CKREADS               no;
>> *
>> *    Get ASCB In question
>> *
>>
>> CKREADS  DS      0H
>>         CLC     RETCODE,=F'0'      TimeOut ?
>>         BNE     CK_ERR             Return
>>         XC      MY_ECBT,MY_ECBT
>> *
>> *        WTO   'AT CALLDISP..........'
>>         CALLDISP                    give up control
>>
>> *
>>         B       SELECT_LOOP
>> CK_ERR   DS      0H
>>         CLC     RETCODE,=F'-1'     Bad RC
>>         BNE     CKRET
>>         MVC     COMMX,=CL8'SELECT'
>>         BAL     R14,RCCHECK
>>         B       SELECT_LOOP
>> CKRET    DS      0H
>> ************************************************************************
>> *                                                                     *
>> *        check out Slected sockets                                    *
>> *                                                                     *
>> ***********************************************************************
>>        TPIMASK TEST,                                                 X
>>              MASK=RRETMSK,                                           X
>>              SD=READ_SOCK
>>        BNE   CK_OTHER
>>        MVC   IO_SOCK,READ_SOCK
>>        B     READ
>> CK_OTHER DS      0H
>>        TPIMASK TEST,                                                 X
>>              MASK=RRETMSK,                                           X
>>              SD=OTHER_SOCK
>>        BNE   SELECT_LOOP
>>        MVC   IO_SOCK,READ_SOCK
>>        B     READ
>> CKGVE    DS      0H
>> *---------------------------------------------------------------------*
>> *           GET THE SOCKET TO READ                                  *
>> *---------------------------------------------------------------------*
>>        L     R15,ECB_ADDR                     Get ECB Address
>>        XC    0(4,R15),0(R15)                  Clear Post Bit
>>        MVC    COMMX,=CL8'TAKESOCK'
>>        XC    MY_PARX(MY_PARX_LEN),MY_PARX    CLEAR PARAMTER LIST
>>        XC    MY_ECBT(104),MY_ECBT CLEAR ECB ADDRESS
>>    EZASMI TYPE=TAKESOCKET,  Issue TakeSocket                          X
>>               SOCRECV=SOCKET,                                         X
>>               CLIENT=SCLIENT,    SPECIFY SUBTASK IDENTIFIER           X
>>               ERRNO=ERRNO,       (Specify ERRNO field)                X
>>               RETCODE=RETCODE,   (Specify RETCODE field)              X
>>               ECB=MY_ECBT,                                            X
>>               ERROR=ERROR,       ABEND IF ERROR ON MACRO              X
>>               MF=(E,MY_PARX)
>> *
>>         WAIT  ECB=MY_ECBT
>> *
>> *
>> *
>>
>> CK_RET   DS    0H
>>         CLC   RETCODE,=F'-1'
>>         BNE   WAIT_TAKE
>>         BAL   R14,RCCHECK
>> WAIT_TAKE DS   0H
>>         MVC    IO_SOCK,RETCODE+2
>>         CLC    READ_SOCK,=2X'FF'           Q, First time in
>>         BNE    SET_OTHER
>>         MVC    READ_SOCK,IO_SOCK
>>         B      CK_FLGS
>> SET_OTHER DS    0H
>>         MVC    OTHER_SOCK,IO_SOCK
>> *
>> *         Set Selct to Tset This Socket out
>> *
>> CK_FLGS  DS    0H
>>         TPIMASK SET,                                                  X
>>               MASK=RSNDMSK,                                           X
>>               SD=READ_SOCK
>> *
>> ***********************************************************************
>> *                                                                     *
>> *        Issue ioctl to set non blocking mode                             *
>> *                                                                     *
>> ***********************************************************************
>>        EZASMI TYPE=IOCTL,       Issue Macro                          X
>>              S=READ_SOCK,       STREAM                               X
>>              COMMAND='FIONBIO', (SOCKET NAME STRUCTURE)              X
>>              REQARG=NONBLOCK,                                        X
>>              RETARG=RETARG,                                          X
>>              ERRNO=ERRNO,       (Specify ERRNO field)                X
>>              RETCODE=RETCODE,   (Specify RETCODE field)              X
>>              ECB=MY_ECBT,       IN CASE WE ARE DOING EXITS OR ECBS   X
>>              ERROR=ERROR,       Abend if Macro error                 X
>>              MF=(E,MY_PARX)
>>
>> *
>>        WAIT  ECB=MY_ECBT
>>          
>> ***********************************************************************
>> *                                                                     *
>> *        Issue READ - Read data and store in buffer                   *
>> *                                                                     *
>> ***********************************************************************
>> READ     DS    0H
>>        MVC   MSG1(2),=AL2(49)
>>        MVC  MSG1+2(38),=CL38'DBGRTSK ABOUT TO EXECUTE READ FOR PORT '
>>        ST    R1,SAVE1                 SAVE R1
>>        XR    R1,R1                   CLEAR
>>        ICM   R1,B'0011',PORT#
>>        CVD   R1,DWORK
>>        L     R1,SAVE1
>>        MVC   MSG1+41(6),=X'402120202020'
>>        ED    MSG1+41(6),DWORK+5
>>        OI    MSG1+45,X'F0'
>>        MVC   WTO_LISX(WTO_LEX),WTO_CONS
>>        WTO   TEXT=MSG1,MF=(E,WTO_LISX)
>>        WTO   'ABOUT TO EXECUTE READ SOCKET'
>>  *        DBGRDIE LINKAGE=SVC
>>        LA    R10,BUF
>>        EZASMI TYPE=READ,        Issue Macro                          X
>>              S=IO_SOCK,         Read Socket                          X
>>              NBYTE=NBYTE,       SIZE OF BUFFER                       X
>>              BUF=(R10),         (BUFFER)                             X
>>              ERRNO=ERRNO,       (Specify ERRNO field)                X
>>              RETCODE=RETCODE,   (Specify RETCODE field)              X
>>              ERROR=ERROR,       Abend if Macro error                 X
>>              ECB=MY_ECBT,                                            X
>>              MF=(E,MY_PARX)
>>
>>        L     R15,RETCODE                 Get Number of bytes
>>        LTR   R15,R15                     Q. Any Data Returned
>>        BZ    SELECT_LOOP                 Return
>>        C     R15,=F'-1'                  Error ?
>>        BNE   SET#BYTE
>>        CLC   ERRNO,=F'54'                Connection closed
>>        BE    CLOSE                       Close it up
>>         LTR   R15,R15                     Q. Any Data Returned
>>         BZ    SELECT_LOOP                 Return
>>         C     R15,=F'-1'                  Error ?
>>         BNE   SET#BYTE
>>         CLC   ERRNO,=F'54'                Connection closed
>>         BE    CLOSE                       Close it up
>>         BAL   R14,RCCHECK
>>         B     SELECT_LOOP
>> SET#BYTE DS    0H
>>         ST    R15,IN_BUFF#                Store number of bytes rd
>>         L     R15,ECBLST
>>         XC    0(4,R15),0(R15)             Clear ECB
>>         MVC   MSG1(2),=AL2(50)
>>         MVC   MSG1+2(50),=CL50'DBGRTSK AFTER READ !!!!!!!!!!'
>>         MVC   WTO_LISX(WTO_LEX),WTO_CONS
>>         WTO   TEXT=MSG1,MF=(E,WTO_LISX)
>> *        WTO   'AFTER READ SOCKET .........'
>> *
>>                 LA    R10,BUF
>>        XC    LINK_LIST(LINK_LEN),LINK_LIST CLEAR PARM AREA
>>        MVC   LINK_LIST(LINK_LEN),LINK_CON1  MOVE CONSTANTS
>> *-----------------------------------------------------*
>> *        LINK TO ASCII TO EBCDIC SERVICE RTN          *
>> *-----------------------------------------------------*
>>        LINK  EP=EZACIC05,                                         X
>>             PARAM=((R10),F20),VL,                                 X
>>             MF=(E,PARAMS),SF=(E,LINK_LIST)
>>
>>
>>        LA    R10,BUF               get buffer area
>> *
>>        XC    CALL_LIST(CALL_LEN),CALL_LIST
>> *
>>        MVC   MSG1(2),=AL2(50)
>>        MVC   MSG1+2(50),=CL50'DBGRTSK BEFORE CALL EZACIC05.'
>>        MVC   WTO_LISX(WTO_LEX),WTO_CONS
>>                           *        MVC   LINK_LIST(LINK_LEN),LINK_CON2  MOVE 
>> CONSTANTS
>> *-----------------------------------------------------*
>> *        LINK TO PROCESS DBGR_CMD REQUEST             *
>> *-----------------------------------------------------*
>>      LR    R12,R13                    Point to Task Storage
>>      LINK  EP=DRVALCMD,                                              X
>>              PARAM=((R12)),                                          X
>>              MF=(E,PARAMS),SF=(E,LINK_LIST)
>>
>>        LTR   R15,R15               q. Did command Process
>>        BZ    CK_WRITE
>>        LA    R10,=F'4'
>>        LA    R11,ERRCODE
>>        B     WRITE_SOCK
>> CK_WRITE DS    0H
>>        CLC   BUF_LEN,=4X'00'            Q. Any Length
>>        BE    READ                       Yes; Write
>> WRITE   DS    0H
>> ***********************************************************************
>> *                                                                     *
>> *        Issue WRITE - Write data from buffer                         *
>> *                                                                     *
>> ***********************************************************************
>>        XC    MY_ECBT(104),MY_ECBT
>>        MVC   TYPE,MWRITE        MOVE 'WRITE ' TO MESSAGE
>>        MVC   MSG1(2),=AL2(50)
>>        MVC   MSG1+2(50),=CL50'DBGRTSK BEFORE EZACIC04......'
>>        MVC   WTO_LISX(WTO_LEX),WTO_CONS
>>        WTO   TEXT=MSG1,MF=(E,WTO_LISX)
>>        CLI   0(R10),C'V'
>>        BE    SETPRM
>>        L     R10,BUF_LEN
>>        MVC   TR_LEN,BUF_LEN
>>        B     SETTRTBL
>> SETPRM   DS    0H
>>        L     R10,TR_LEN                   Get length of storage
>> ETTRTBL DS    0H
>>        LA    R7,STANDARDE2A                get address of tr tabler
>>        L     R11,OUTBUFFA                  gET OutPut buffer
>>        LA    R11,4(,R11)                   Past Length
>> *
>> TRLOOP   DS    0H
>>        CH    R10,=H'255'                  < 255
>>        BL    TRREST                       Translate rest
>>        TR    0(255,R11),0(R7)             Translate it
>>        LA    R11,255(,R11)                Bump it up
>>        SH    R10,=H'255'                  Decrement
>>        B     TRLOOP                       Loop Thru
>> TRREST   DS    0H
>>        BCTR  R10,0                        Down by for Execute
>>        EX    R10,TRBUFF                   Do the rest
>> *
>>        LA    R10,BUF_LEN                   re-init for write
>>        L     R11,OUTBUFFA                  Buff Address
>>        B     WRITE_SOCK
>> TRBUFF   TR    0(0,R11),0(R7)
>> *
>> WRITE_SOCK DS   0H
>>        WTO   'AT WRITE SOCK..'
>>        EZASMI TYPE=WRITE,       Issue Macro                          X
>>              S=READ_SOCK,       ACCEPT Socket                        X
>>              NBYTE=(R10),       SIZE OF BUFFER                       X
>>              BUF=(R11),         (BUFFER)                             X
>>              ERRNO=ERRNO,       (Specify ERRNO field)                X
>>              ECB=MY_ECBT,                                            X
>>              RETCODE=RETCODE,   (Specify RETCODE field)              X
>>              ERROR=ERROR,       Abend if Macro error                 X
>>              MF=(E,MY_PARX)
>> *
>>        WAIT  ECB=MY_ECBT        WAIT FOR COMMAND COMPLETION
>> *
>>        CLC   RETCODE,=F'0'      Q. DID WE GET ANYTING
>>        BH    WAIT_WRITE
>>        CLC   RETCODE,=F'0'      Q. DID WE GET ANYTING
>>         BNE   CKRCWRTE
>>         WTO   'ZERO BYTES WRITTEN'
>>         B     SELECT_LOOP
>> CKRCWRTE DS    0H
>>         MVC   COMMX,=CL8'WRITE'
>>         BAL   R14,RCCHECK        CHECK FOR SUCCESSFUL CALL
>> WAIT_WRITE DS   0H
>>         WTO   'WRITE COMPLETED...'
>>         XC    MY_ECBT,MY_ECBT
>>         B     SELECT_LOOP
>>
>> -----Original Message-----
>> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of 
>> Tony Thigpen
>> Sent: Saturday, January 5, 2019 10:05 PM
>> To: IBM-MAIN@LISTSERV.UA.EDU
>> Subject: Re: Concurrent Server Task Dispatch issue multitasking issue
>>
>> You might need to post your full code so people can look at it to find the 
>> problem.
>>
>> Tony Thigpen
>>
>> Joseph Reichman wrote on 1/5/19 7:52 PM:
>>> This is the situation both the main task and 4  sub tasks have selects
>>> after the time outs of the main task and subtasks I do wto When I get
>>> a connection the main task posts a subtask to do a EZASMI read and
>>> write and  then go back to the select loop at this point I hardly see
>>> any WTOs from the main task time the modify command works about 1 out
>>> of 5 times
>>>
>>>
>>>
>>>> On Jan 5, 2019, at 7:14 PM, Brian Chapman <bchapma...@gmail.com 
>>>> <mailto:bchapma...@gmail.com> > wrote:
>>>>
>>>> 1. Are you checking the COMM ECB after every wait? Even after a
>>>> subtask post the main task's ECB or any other ECB in your list? I've
>>>> had problems with subtasks posting the main task and not checking the
>>>> COMM ECB after servicing the subtask request and missing console commands.
>>>>
>>>> 2. Double check which ECB in your ECB list has the high order bit
>>>> set. I've added more ECBs in my list and forgot to move the high order bit 
>>>> flip.
>>>>
>>>> On Jan 5, 2019 6:26 PM, "Joseph Reichman" <reichman...@gmail.com 
>>>> <mailto:reichman...@gmail.com> > wrote:
>>>>
>>>> First off it is being posted I saw a X’48’ in the first byte the
>>>> operative bit being the 4 I am doing the wto on timeout from both
>>>> selects and the problem is that the main task doesn’t get control
>>>>
>>>> Thanks
>>>>
>>>>
>>>>
>>>>> On Jan 5, 2019, at 12:20 AM, Brian Westerman <
>>>> brian_wester...@syzygyinc.com <mailto:brian_wester...@syzygyinc.com> > 
>>>> wrote:
>>>>>
>>>>> When you test the ECB is anything being posted?  Is it possible that
>>>>> your
>>>> subtasks are actually sharing the ECBLIST for other use and they are
>>>> clearing it for you?
>>>>>
>>>>> It would be interesting to have all of your tasks (main and sub) wto
>>>>> when
>>>> they are posted so that you can see where you are when the post happens.
>>>> Possibly you are in a subtask, it gets posted and that subtask sees
>>>> that it's not "his" data, so clears things and moves on.  I don't
>>>> share the ECBLIST between the main and subtask, so I'm not sure what
>>>> happens if you do, but it always seemed to me to be asking for trouble.
>>>>>
>>>>> Brian
>>>>>
>>>>> --------------------------------------------------------------------
>>>>> -- For IBM-MAIN subscribe / signoff / archive access instructions,
>>>>> send email to lists...@listserv.ua.edu <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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
>
> ----------------------------------------------------------------------
> 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

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to