OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-cogserver commits / 221c003

Update scheme for correct multi-server operation
221c0039d8e4d2a3e5c01e5494e9aa03c53cbf30
by Linas Vepstas <linasvepstas@gmail.com> · 2025-12-14T06:08:18.000Z

Changed files (1) +21 -6

opencog/cogserver/scm/cogserver.scm +21 -6
……@@ -1,6 +1,6 @@
11;
22; Opencog cogserver module
3; This is a convenience wrapper around the CogSewrverNode
3; This is a convenience wrapper around the CogServerNode
44;
55
66(define-module (opencog cogserver))
……@@ -41,10 +41,13 @@
4141 uses the ESC char, which is written as \\x1b in guile.
4242
4343 To stop the cogserver, just say stop-cogserver.
44
45 Returns the CogServerNode that was created.
4446"
4547 (if (string? port) (set! port (string->number port)))
4648
47 (define csn (CogServerNode "cogserver"))
49 (define name (format #f "cogserver://~a:~a:~a" port web mcp))
50 (define csn (CogServerNode name))
4851 (cog-set-value! csn (Predicate "*-telnet-port-*") (FloatValue port))
4952 (cog-set-value! csn (Predicate "*-web-port-*") (FloatValue web))
5053 (cog-set-value! csn (Predicate "*-mcp-port-*") (FloatValue mcp))
……@@ -52,18 +55,30 @@
5255 (cog-set-value! csn (Predicate "*-ansi-prompt-*") (StringValue prompt))
5356 (cog-set-value! csn (Predicate "*-ansi-scm-prompt-*") (StringValue scmprompt))
5457 (cog-set-value! csn (Predicate "*-start-*") (VoidValue))
58 csn
5559)
5660
57; Similar to above
58(define (stop-cogserver)
61(define* (stop-cogserver #:optional csn)
5962"
6063 stop-cogserver
64 stop-cogserver CSN
6165
62 Stop the cogserver.
66 Stop the cogserver. If a CogServerNode is provided, stop that specific
67 server. If no argument is given, find all running CogServerNodes. If
68 there is exactly one, stop it. If there are multiple, throw an error.
6369
6470 See also: start-cogserver
6571"
66 (define csn (CogServerNode "cogserver"))
72 (if (not csn)
73 (let ((servers (cog-get-atoms 'CogServerNode)))
74 (cond
75 ((null? servers)
76 (throw 'cogserver-error "No CogServerNode found"))
77 ((= 1 (length servers))
78 (set! csn (car servers)))
79 (else
80 (throw 'cogserver-error
81 "Multiple CogServerNodes found; specify which one to stop")))))
6782 (cog-set-value! csn (Predicate "*-stop-*") (VoidValue))
6883)
6984