Next: , Previous: , Up: Supplied backends   [Contents][Index]

3.3.3 The c_udgram backend

coNCePTuaL program development on a workstation is facilitated by the c_udgram backend. c_udgram runs on only a single machine but, unlike c_seq, supports all of coNCePTuaL’s communication statements. Communication is performed over Unix-domain datagram sockets. Unix-domain datagrams are reliable and guarantee order (unlike UDP/IP datagrams) but have a maximum packet size. c_udgram backend write this maximum to every log file and automatically packetizes larger messages.

By default, c_udgram produces an executable program that can be run directly from the command line. When ncptl is run with the --no-link option, c_udgram produces an object file that needs to be linked with the appropriate sockets library (on systems that require a separate library for socket calls). When ncptl is run with the --no-compile option, c_udgram outputs ANSI C code that must be both compiled and linked. Like all C-based backends, c_udgram honors the CC , CPPFLAGS , LDFLAGS , and LIBS environment variables when compiling and linking. Values not found in the environment are taken from those specified/discovered at configuration time (see configure).

In addition to supporting the default set of command-line options, programs generated using the c_udgram backend further support a --tasks option that designates the number of tasks to use:

  -T, --tasks=<number>        Number of tasks to use [default: 1]

c_udgram programs spawn one OS-level process for each task in the program. They also create a number of sockets in the current directory named ‘c_udgram_ <tag>’. These are automatically deleted if the program exits cleanly but will need to be removed manually in the case that the program is killed by an non-trappable signal.

Next: , Previous: , Up: Supplied backends   [Contents][Index]

Scott Pakin,