From: "Rolf" <rolf.ebert_nospam_@gmx.net>
Subject: tasksing and TCP sockets
Date: 30 Jan 2006 14:12:51 -0800
Date: 2006-01-30T14:12:51-08:00 [thread overview]
Message-ID: <1138659171.491931.322480@g49g2000cwa.googlegroups.com> (raw)
Consider an application that communicates with its environment via
sensors and actors. For testing purposes the low level access to the
sensor and actor data gets replaced by a TCP socket communication whose
other end simulates the world, i.e. the world simulation continuously
writes sensor data to the socket and accepts commands as actor data.
+-----------------------+
| |
| application |
| |
+-----------------------+
| h/w abstraction |
| sensors | actors |
+-----------------------+
|
TCP client
|
|
|
TCP server that simulates the world
In a stripped down version I can succesfully connect to the server
(using GNAT.Sockets) and either read the sensor data *or* write actor
data. The program is currently split in two tasks. One tasks contains
the application code and the actor communication (using
type_id'output(channel)). The second tasks gets started during program
initialisation. It reads the data from the socket via
type_id'input(channel) and provides the data to the application through
a protected object.
The problem that I face is that the second task seems to starve the
first one. As soon as it is active, the application does not generate
debug output anymore.
Some background info: gcc-3.4.4 on Windows XP. Java for the world
simulation. The simulator sends about 20 packages à 11bytes every
100ms. The application sends typically 2-3 packages per second. I have
delay statements in both main loops (varied between 0.0 and 0.2
seconds).
My questions:
- is that a reasonable tasking approach?
- I don't know much about sockets (or better I don't remember much).
Does a waiting read (in the second task) block a write in the first
task?
- how can I interrupt the waiting read task to force activity in the
main task?
- what other hints can you give me?
TIA
Rolf
next reply other threads:[~2006-01-30 22:12 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-30 22:12 Rolf [this message]
2006-01-31 2:40 ` tasksing and TCP sockets Stephen Leake
2006-01-31 6:59 ` tmoran
2006-01-31 23:03 ` Rolf
2006-02-01 1:26 ` Stephen Leake
2006-02-01 7:39 ` Rolf
2006-02-01 14:52 ` Stephen Leake
2006-02-03 20:33 ` Rolf
2006-02-04 12:48 ` Stephen Leake
2006-02-06 5:02 ` Dave Thompson
2006-01-31 22:52 ` Rolf
2006-02-01 1:23 ` Stephen Leake
2006-02-01 21:12 ` Simon Wright
2006-01-31 3:02 ` Steve
2006-01-31 10:09 ` Dmitry A. Kazakov
2006-01-31 21:55 ` Simon Wright
2006-02-01 8:54 ` Dmitry A. Kazakov
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox