You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by cc...@apache.org on 2017/05/11 01:22:15 UTC
incubator-mynewt-newt git commit: unixchild - fail rather than hang
if not rdy to tx
Repository: incubator-mynewt-newt
Updated Branches:
refs/heads/master 25d87344e -> ca783a7dd
unixchild - fail rather than hang if not rdy to tx
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/commit/ca783a7d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/tree/ca783a7d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/diff/ca783a7d
Branch: refs/heads/master
Commit: ca783a7dd6f58cae1ef129d1c212e1f1eda2f877
Parents: 25d8734
Author: Christopher Collins <cc...@apache.org>
Authored: Wed May 10 18:20:43 2017 -0700
Committer: Christopher Collins <cc...@apache.org>
Committed: Wed May 10 18:20:43 2017 -0700
----------------------------------------------------------------------
util/unixchild/unixchild.go | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/ca783a7d/util/unixchild/unixchild.go
----------------------------------------------------------------------
diff --git a/util/unixchild/unixchild.go b/util/unixchild/unixchild.go
index 91930c0..3474424 100644
--- a/util/unixchild/unixchild.go
+++ b/util/unixchild/unixchild.go
@@ -72,8 +72,8 @@ const (
type Client struct {
FromChild chan []byte
- ToChild chan []byte
ErrChild chan error
+ toChild chan []byte
childPath string
sockPath string
childArgs []string
@@ -91,8 +91,8 @@ func New(conf Config) *Client {
childArgs: conf.ChildArgs,
maxMsgSz: conf.MaxMsgSz,
FromChild: make(chan []byte, conf.Depth),
- ToChild: make(chan []byte, conf.Depth),
ErrChild: make(chan error),
+ toChild: make(chan []byte, conf.Depth),
acceptTimeout: conf.AcceptTimeout,
stop: make(chan bool),
stopped: make(chan bool),
@@ -181,7 +181,7 @@ func (c *Client) handleChild(con net.Conn) {
defer wg.Done()
for {
select {
- case buf := <-c.ToChild:
+ case buf := <-c.toChild:
mlen := uint16(len(buf))
err := binary.Write(con, binary.BigEndian, mlen)
if err != nil {
@@ -290,3 +290,12 @@ func (c *Client) Start() error {
return nil
}
+
+func (c *Client) TxToChild(data []byte) error {
+ if c.state != CLIENT_STATE_STARTED {
+ return fmt.Errorf("transmit over unixchild before it is fully started")
+ }
+
+ c.toChild <- data
+ return nil
+}