[#BloombergLP-balb-PipeControlChannel-start-0a]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/balb.adoc[balb]::xref:BloombergLP/balb/PipeControlChannel.adoc[PipeControlChannel]::start
:relfileprefix: ../../../
:mrdocs:

Open a named pipe and start a thread with the given attributes&period;

== Synopsis

Declared in `&lt;balb&lowbar;pipecontrolchannel&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
int
start(
    char const* pipeName,
    xref:BloombergLP/bslmt/ThreadAttributes.adoc[bslmt::ThreadAttributes] const& attributes);
----

== Description

Open a named pipe having the specified `pipeName`, and start a thread to read messages and dispatch them to the callback specified at construction, using the specified `attributes` of the background processing thread&period; Return 0 on success, and a non&hyphen;zero value otherwise&period; In particular, return a non&hyphen;zero value if the pipe cannot be opened or if it is detected that another process is reading from the pipe&period; `pipeName` must be of the types `const char &ast;`, `char &ast;`, `bsl&colon;&colon;string`, `std&colon;&colon;string`, `std&colon;&colon;pmr&colon;&colon;string` (if supported), or `bslstl&colon;&colon;StringRef`&period;

== Return Value

0 on success, and a non&hyphen;zero value otherwise

== Parameters

[cols="1,4"]
|===
| Name| Description
| *pipeName*
| name of the named pipe to open
| *attributes*
| attributes of the background processing thread
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
