[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference azur::mcc

Title:DECmcc user notes file. Does not replace IPMT.
Notice:Use IPMT for problems. Newsletter location in note 6187
Moderator:TAEC::BEROUD
Created:Mon Aug 21 1989
Last Modified:Wed Jun 04 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:6497
Total number of notes:27359

126.0. "MCC$TIMER_WAIT" by TENERE::DUNON (Paul Dunon - Telecom Engineering - VBO) Tue May 08 1990 13:44

Hi,

I've tried the MCC$TIMER_WAIT routine in a thread created by my AM and got

	%MCC-E-UNSUPP_OP, Unsupported operation

Is this routine supported by the DECmcc T1.0.0 version ?
I've found nothing in the release notes.

Thanks for you help,

			-- Paul
T.RTitleUserPersonal
Name
DateLines
126.1Use MCC$TIME_CREATE to create your time parmPETE::BURGESSTue May 08 1990 16:5611
The error condition (%MCC-E-UNSUPP_OP, Unsupported operation)
resulted when MCC$TIMER_WAIT called MCC$TIME_IS_ABSOLUTE
with your "daytim" parameter.  A more meaning error message
would be "Unsupported time data type" indicating that
your single parameter to the routine has a bogus descriptor/value.

MCC supports a extraordinary array of time formats.
Use MCC$TIME_CREATE, etc. to create your input parameter.


\Pete
126.2more questions about threadsTENERE::DUNONPaul Dunon - Telecom Engineering - VBOWed May 09 1990 12:2820
OK, I had missed the point that MCC$TIME_CREATE ALLOCATES the MCC descriptor 
and initializes it. Now it works.

The SRM doesn't mention that MCC$TIME_CREATE may return the set of error
condition values returned by MCC$TIME_IS_ABSOLUTE. This should be updated.


More questions:

1) When does a blocked thread (on MCC$TIMER_WAIT) become eligible for execution?
   I assume when the time period elapses AND when rescheduling occurs (i.e. when
   the user types a command at the MCC prompt). Right ?

2) When a thread resumes execution, what happens with the parameters passed 
   to the procedure at thread creation time ? Are they still valid ?
   I don't think so because the call stack has been deallocated.

Thanks,

		--Paul
126.3GOSTE::CALLANDERWed May 09 1990 19:315
    Note that the TRM is NON-BLOCKING, therefore you don't have to wait
    on a user hitting the carriage return for something to get scheduled.
    
    jill
    
126.4PETE::BURGESSFri May 11 1990 19:2835
> 
> The SRM doesn't mention that MCC$TIME_CREATE may return the set of error
> condition values returned by MCC$TIME_IS_ABSOLUTE. This should be updated.
> 
	Don't you mean to say the MCC$TIME_WAIT may return the set of error...
	condition values return by MCC$TIME* (create, is_absolute, delete,
	compare, etc)

	The SRM does try to say this on page 736.
> 
> More questions:
> 
> 1) When does a blocked thread (on MCC$TIMER_WAIT) become eligible for execution?
>    I assume when the time period elapses AND when rescheduling occurs (i.e. when
>    the user types a command at the MCC prompt). Right ?
> 
	When the condition (timer expires) becomes true,
	then the thread becomes ready to run.  When it receives 
	actually runs is an implementation secret- subject to random changes.

> 2) When a thread resumes execution, what happens with the parameters passed 
>    to the procedure at thread creation time ? Are they still valid ?
>    I don't think so because the call stack has been deallocated.
> 

	The caller should pass parameters "by value" 
	eg address of parameter block 

	The thread-create routine creates the argument list
	the stack of the created thread so these values are
	persistent but certainly the "parent thread" stack
	is volatile.


\Pete
126.5thanksTENERE::DUNONPaul Dunon - Telecom Engineering - VBOTue May 15 1990 09:5216
re .3

	Yes, but when I run MCC with /DEBUG, my thread doesn't resume execution
	after the timer expires, unless I type a command.
	Could someone explain me why the debugger causes mcc scheduling not to
	occur ?

re .4

	Thanks for the info. My copy of the SRM is probably out-of-date, because
	the page 376 is just saying that the routine may return the condition
	values of MCC$TIME_CREATE ( and not MCC$TIME* ).



			-- Paul
126.6/debug restrictedPETE::BURGESSTue May 15 1990 15:369
I think that the release notes point out the restriction that system service interception
is not currently done when the debugger or pca is activated.  The reason for this
is the both pca and the debugger perform interception as well and the
two methods don't cooperate with each other.  I am investigating whether
MCC can share their method.  

Let me know if your timers don't fire during /nodebug operation.

\Pete