[Oberon] Re (3): n-o PPP modifications
easlab at absamail.co.za
easlab at absamail.co.za
Sun Mar 13 14:21:58 CET 2005
Peter wrote:
]A verb is missing. Is this correct?
]> I noticed when I freed the main module the task was still "alive".
Well, in the bad 'state' the task was shown as still "alive".
> Several points of confusion remain for me.
>
> 1. Simultaneous connections.
> I wonder whether Oberon PPP was meant to
> support multiple simultaneous connections.
> Does anyone have access to a design specification
> used by Martin Aeschlimann and Claude Knaus?
> Native Oberon would need more than one
> simultaneous connection rarely but an Aos
> with multiple modems will need a PPP process
> for each.
>
> 2. Distinction between PPPMain.Stop and PPPMain.Remove.
> Seems that the intention of Stop is to close
> the connection but leave the PPP task idling
> in the event loop. Whereas Remove does Stop
> and then removes the task from the loop.
> Presumeably Stop will allow a subsequent
> connection to start faster than after Remove.
> At least RemovePPP should release the serial port
> so that it is available for a terminal session.
>
> 3. In PPPMain.Mod we find
> IMPORT ... PT:=(*es*)NetBase, ...
> Anyone have an idea what PT abbreviates?
>
Yes, apparently "PT" is Edgar's alias for "NetBase".
It allows him to use shorter, more meaningful IDs.
> 3. In PPPMain.Mod we find
> PROCEDURE * Connect (me: Oberon.Task);
> ....
> BEGIN
> IF V24.Available(ppp.me.c) > 0 THEN
> ...
> IF ppp.me.state = PT.open THEN
> Oberon.Remove(ppp.task); ppp.task := NIL;
> END;
> END;
> END Connect;
>
> Puzzling. What is the case where
> V24.Available(...) is true but PT.open is false?
If/when I find time, I'll look into this.
I think you are on the right track now; ie. it has to do with
tasking. The following extracts also point there, but are
way beyond my experience [fiddling with tasking! ]:
"NetSystem.Mod > CloseConnection , Cleanup ,
one task per connection. for all items in c.rq, call c.handle"
----------------------
> > John, that is a good suggestion about
> > PPPMain.CleanUp.
John Drake wrote:
> Thanks. If anyone's had a chance to test this,
> please let us know if it worked.
Yes, I tried it immediately. And I though it solved the problem,
because I just cut the line, without PPPMain.StopInst 'properly',
when I was finished. And yet I was able to redial OK.
Then later the ISP was 'congested' [I evaluate probabilistically,
based on the weather - outdoor activety - time of day, week,
month, TV showing...etc. ] and it 'dropped me' before login,
[ I've always wondered why these clowns don't feed-back an
engaged signal and save their clients a call charge ?] and I had
the same old problem.
Then I remembered that I had Peter's version of PPP loaded,
and though that perhaps your patch was only applicable to
'standard' n-o PPP.
Then I remembered that I had also my own "@->$" patch.
Then I though that perhaps the 'CleanUp' should better be
at the start of the main block, instead of after other
initialisation, since the the existing initialisation
shouldn't be overwritten/undone by a CleanUp. And also
the problem originates from the *previous* run.
Then I though that the 'main block' is only run when the
module is initially loaded - which perhaps relates to the
fact that a re-boot fixes it - so your clean up won't execute.
Then I though of making your CleanUp externally callable,
and I forget the result.
Then I though "I'm very unhappy that no one else has yet
admitted that they can confirm my claimed error symptom".
I have to test/debug this on my work-horse machine, and
pay a call-charge for each test cycle.
We really need a working CVS ?
== Chris Glur.
More information about the Oberon
mailing list