Re: Unchecked_Conversion and task pointer.



"Dmitry A. Kazakov" <mailbox@xxxxxxxxxxxxxxxxx> wrote in message
news:28m5yx3jhzvu$.16u6va8093srl.dlg@xxxxxxxxxxxxx
....
> > No, you should definitely use an interface.
>
> It depends. Tasks are still non-tagged in the sense that you cannot have a
> "task" interface.

You can declare a task interface in Ada 200Y:

type T_Int is task interface;

I probably should have done that in my example.

> In an interface Who_Am_I can only be a *procedure*, which
> could be then implemented by an entry. But it should an *entry* from the
> beginning if the intent is to have a dispatching entry Who_Am_I called
> using, say, timed entry call.

You are allowed to use the primitive procedures of an interface in a timed
entry call, and they will work as an entry in that case. So while the
*syntax* is that of a procedure, they do not lose their entry
characteristics and still act as an entry.

I wasn't (and am still not) convinced that this is the right design, but it
certainly works and has the needed effects. I think there will be some
confusion from a readability standpoint, but otherwise you can do everything
with such a procedure that you can do with an entry (other than requeue it;
no one can figure out how a dispatching requeue could work - it couldn't
have been allowed if dispatching entries existed, either).

> In that case mix-in will be the only workaround.

Not at all. See above.

Randy.




.



Relevant Pages

  • Re: Unchecked_Conversion and task pointer.
    ... you should definitely use an interface. ... > entry call, and they will work as an entry in that case. ... > with such a procedure that you can do with an entry (other than requeue it; ... similarly to class-wide subroutines there could be class-wide entries. ...
    (comp.lang.ada)
  • Re: Unchecked_Conversion and task pointer.
    ... >> You can declare a task interface in Ada 200Y: ... be called as an entry. ... >> no one can figure out how a dispatching requeue could work - it couldn't ...
    (comp.lang.ada)
  • [PATCH] Add a non-blocking I2C interface
    ... Here's the code that I have so far for adding a non-blocking interface ... But this mostly is using the queue entry for data, ... of the IPMI SMB driver. ...
    (Linux-Kernel)
  • VB6 Application Overwhelmed by Rapid User Interaction
    ... I have a VB6 app with a somewhat complication user interface screen. ... consists of a grid through which the user can navigate from entry to entry. ...
    (microsoft.public.vb.winapi)
  • Getting prefix length for IPv6 interface address?
    ... What is the correct way to get the prefix length for an IPv6 interface? ... in FirstUnicastAddresses would map to the 2nd entry in FirstPrefix). ... calling GetAdaptersAddresses, it seems to work, but that's a little hack-ish. ... to workaround the FirstUnicastAddress and FirstPrefix lists being ...
    (microsoft.public.win32.programmer.networks)