Jim Bormann <james.bormann@delphiauto.com> wrote:
This is a multi-part message in MIME format.
--------------319C0FF4B851A45C517BAB49
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
I am having difficulty with a simple case of wanting a thread to wait on
an event, with a timeout time. The code to implement this in WIN32 is
attached, I was hoping a Neutrino expert could “enlighten” me as to how
to best implement this for Neutrino. What I have seems awful complex
for such a simple task…
Take a look at TimerTimeout() for timing out any blocking state. Also,
what sort of event are you waiting on? MsgReceive() is a common way
to block (for pulse), but for signals, you might make a different choice.
I can’t comment on your code as you seem to have chosen to attach it
in mime-encoded form, rather than as plain text.
-David
Jim
--------------319C0FF4B851A45C517BAB49
Content-Type: application/x-unknown-content-type-c_auto_file;
name=“test.c”
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename=“test.c”
I2luY2x1ZGUgPHdpbmRvd3MuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+Cg0KI2RlZmluZSBUSFJF
QURfVElNRU9VVCAxMDAwMCAgLyogMTAgc2VjICovCgpzdGF0aWMgdm9sYXRpbGUgaW50IFRo
cmVhZEV4ZWN1dGluZz0wOwpzdGF0aWMgSEFORExFIGhPYmplY3Q7CnN0YXRpYyBjb25zdCBk
b3VibGUgVGhyZWFkVGltZW91dCA9IFRIUkVBRF9USU1FT1VUIC8gMTAwMC4wOwoKLyotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0qLwp2b2lkIFRocmVhZEZ1bmModm9pZCkKewoJdW5zaWduZWQg
aW50IFRocmVhZENvdW50ZXI9MDsKCXdoaWxlICgxKSB7CgkJRFdPUkQgU3RhdHVzOwoJCWNv
bnN0IGNoYXIqIE1zZ1B0cjsKCQlUaHJlYWRFeGVjdXRpbmcgPSAwOwoJCVN0YXR1cyA9IFdh
aXRGb3JTaW5nbGVPYmplY3QoaE9iamVjdCxUSFJFQURfVElNRU9VVCk7CgkJVGhyZWFkRXhl
Y3V0aW5nID0gMTsKCQlzd2l0Y2ggKFN0YXR1cykgewoJCQljYXNlIFdBSVRfT0JKRUNUXzA6
CgkJCQlNc2dQdHIgPSAiJXVcdFRoZSBzdGF0ZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBp
cyBzaWduYWxlZFxuIjsKCQkJCVJlc2V0RXZlbnQoaE9iamVjdCk7CgkJCQlicmVhazsKCgkJ
CWNhc2UgV0FJVF9BQkFORE9ORUQ6CgkJCQlNc2dQdHIgPSAiJXVcdFl1ayFcbiI7CgkJCQli
cmVhazsKCgkJCWNhc2UgV0FJVF9JT19DT01QTEVUSU9OOgoJCQkJTXNnUHRyID0gIiV1XHRP
bmUgb3IgbW9yZSBJL08gY29tcGxldGlvbiByb3V0aW5lcyBhcmUgcXVldWVkIGZvciBleGVj
dXRpb25cbiI7CgkJCQlicmVhazsKCgkJCWNhc2UgV0FJVF9USU1FT1VUOgoJCQkJTXNnUHRy
ID0gIiV1XHRUaW1lLW91dCBpbnRlcnZhbCBlbGFwc2VkICglLjNsZnMpLCBvYmplY3QncyBz
dGF0ZSBpcyBub24tc2lnbmFsZWRcbiI7CgkJCQlicmVhazsKCgkJCWRlZmF1bHQ6CgkJCQlN
c2dQdHIgPSAiJXVcdFVua25vd24gcmV0dXJuIHZhbHVlXG4iOwoJCQkJYnJlYWs7CgkJfQoJ
CWZwcmludGYoc3Rkb3V0LE1zZ1B0ciwrK1RocmVhZENvdW50ZXIsVGhyZWFkVGltZW91dCk7
CgkJZmZsdXNoKHN0ZG91dCk7Cgl9Cn0KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwppbnQg
bWFpbih2b2lkKQp7CglIQU5ETEUgaFRocmVhZDsKCURXT1JEIGR3VGhyZWFkSUQ7CgkvKiBj
cmVhdGUgZXZlbnQgdG8gc2lnbmFsIHRocmVhZCB3YWtldXAgKi8KCWhPYmplY3QgPSBDcmVh
dGVFdmVudCgKCQlOVUxMLCAgICAgIC8qIHNlY3VyaXR5IGF0dHJpYnV0ZXMgKi8KCQlUUlVF
LCAgICAgIC8qIG1hbnVhbCByZXNldCBldmVudCB0eXBlICovCgkJRkFMU0UsICAgICAvKiBp
bml0aWFsIHN0YXRlIGlzIG5vbi1zaWduYWxlZCAqLwoJCSJFdmVudCIgICAgLyogbmFtZSAq
LwoJKTsKCS8qIGNyZWF0ZSBhIHRocmVhZCB0byBiZSBzaWduYWxlZCAqLwoJaFRocmVhZCA9
IENyZWF0ZVRocmVhZCgKCQlOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8qIG5vIHNlY3VyaXR5IGF0dHJpYnV0ZXMgKi8KCQkwLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIHVzZSBkZWZhdWx0IHN0YWNrIHNpemUgKi8KCQkoTFBUSFJF
QURfU1RBUlRfUk9VVElORSkgVGhyZWFkRnVuYywgIC8qIHRocmVhZCBmdW5jdGlvbiAqLwoJ
CU5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYXJndW1lbnQgdG8g
dGhyZWFkIGZ1bmN0aW9uICovCgkJMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKiB1c2UgZGVmYXVsdCBjcmVhdGlvbiBmbGFncyAqLwoJCSZkd1RocmVhZElEICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLyogcmV0dXJucyB0aHJlYWQgSUQgKi8KCSk7Cglp
ZiAoaFRocmVhZCA9PSBOVUxMKSB7CgkJZnB1dHMoIkNhbm5vdCBjcmVhdGUgdGhyZWFkXG4i
LCBzdGRlcnIpOwoJCXJldHVybiAxOwoJfQoJZWxzZSB7CgkJZnB1dHMoIlByZXNzIGFueSBr
ZXkgdG8gc2lnbmFsIHRocmVhZCwgRVNDIHRvIGV4aXRcbiIsc3Rkb3V0KTsNCgkJZmZsdXNo
KHN0ZG91dCk7DQoJCXdoaWxlICgxKSB7CgkJCWlmIChnZXRjaCgpID09IDB4MUIpIHsKCQkJ
CWZwdXRzKCJUZXJtaW5hdGluZyB0aHJlYWQuLi5cblByZXNzIGFueSBrZXkgdG8gY2xvc2Ui
LHN0ZG91dCk7CgkJCQl3aGlsZSAoVGhyZWFkRXhlY3V0aW5nKSB7DQoJCQkJCS8qIHdhaXQg
Zm9yIHRocmVhZCB0byBzbGVlcCAqLw0KCQkJCX0NCgkJCQlUZXJtaW5hdGVUaHJlYWQoaFRo
cmVhZCwwKTsNCgkJCQlnZXRjaCgpOwoJCQkJYnJlYWs7CgkJCX0KCQkJLyogc2lnbmFsIHRo
ZSB0aHJlYWQgdG8gd2FrZSB1cCAqLwoJCQlTZXRFdmVudChoT2JqZWN0KTsKCQl9Cgl9Cgly
ZXR1cm4gMDsKfQovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCg==
--------------319C0FF4B851A45C517BAB49–