Block Closure and Timeouts

Tagged:  •  

For the SS7/GSM work I am doing I have to implement dialogues with other systems and by default the IO in a lightweight process in Smalltalk is blocking (built on top of SIGIO). My problem is that a remote system could make me wait for a response forever. I am not an experienced Smalltalker yet but the existing options didn't look good enough (which might be me being unexperienced). I looked into what is required to add a #timeout:do: to the BlockClosure. The idea is to run the dialogue in a very straight forward way and guard the whole operation with a Timeout.

self sendSomething.
self waitForResponseOfKind: ABC.
self someMoreStuff.
self waitForMoe.
self askOtherSystem.
self conclude.
] timeout: 10 do: ['The operation timed out... cleanup']

Looking for a nice ASN.1 stack

Tagged:  •  

I am working on GSM/SS7 protocol implementation on and off for a bit. The current modules can be found in these git repositories.

Right now I am working on parsing and creating ISDN User Part (ISUP) messages and the general question of how to express on-wire messages composed from mandantory, variable and optional fields (class based vs. instance based). For now I am using a class based approach as this allows me to have field decoding/encoding inside these classes but I am not sure if this is the best way and will keep on exploring it.

GSM in Smalltalk - a GSM Toolkit


I started to play with smalltalk somewhere in February, more specific with the GNU Smalltalk implementation. Like it is with any new language and class library it takes a while to get productive and it took me until somewhere the last month where I finally started to do GSM handling in Smalltalk and thanks to laf0rge the code is now in a public repository and hosted along the other Osmocom projects. You can see all the subprojects over here.

Syndicate content

User login