Repository: incubator-mynewt-newtmgr Updated Branches: refs/heads/master 739d29c45 -> d8f913e74
nmxact - Fix deadlock on redundant BLE Open(). The BLE session would block forever if the client attempted to start it twice. Now, an error is returned instead. Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/commit/d8f913e7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/tree/d8f913e7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/diff/d8f913e7 Branch: refs/heads/master Commit: d8f913e7496d753378d573db0655fe8a43a77c74 Parents: 739d29c Author: Christopher Collins <[email protected]> Authored: Tue May 9 16:41:28 2017 -0700 Committer: Christopher Collins <[email protected]> Committed: Tue May 9 16:42:31 2017 -0700 ---------------------------------------------------------------------- nmxact/example/ble_dual/ble_dual.go | 6 +++--- nmxact/nmble/ble_fsm.go | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/d8f913e7/nmxact/example/ble_dual/ble_dual.go ---------------------------------------------------------------------- diff --git a/nmxact/example/ble_dual/ble_dual.go b/nmxact/example/ble_dual/ble_dual.go index b1e2a67..5be14e5 100644 --- a/nmxact/example/ble_dual/ble_dual.go +++ b/nmxact/example/ble_dual/ble_dual.go @@ -189,7 +189,7 @@ func main() { params := nmble.NewXportCfg() params.SockPath = "/tmp/blehostd-uds" params.BlehostdPath = "blehostd.elf" - params.DevPath = "/dev/cu.usbmodem14221" + params.DevPath = "/dev/cu.usbmodem142121" x, err := nmble.NewBleXport(params) if err != nil { @@ -210,8 +210,8 @@ func main() { peerNames := []string{ "ccollins1", - "ccollins2", - "ccollins3", + //"ccollins2", + //"ccollins3", } sesns := []sesn.Sesn{} http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/d8f913e7/nmxact/nmble/ble_fsm.go ---------------------------------------------------------------------- diff --git a/nmxact/nmble/ble_fsm.go b/nmxact/nmble/ble_fsm.go index 05c18ba..03d70f7 100644 --- a/nmxact/nmble/ble_fsm.go +++ b/nmxact/nmble/ble_fsm.go @@ -275,6 +275,7 @@ func (bf *BleFsm) processErr(err error) { bf.peerDev = nil + // Wait for all listeners to get removed. bf.wg.Wait() bf.errFunnel.Reset() @@ -776,15 +777,14 @@ func (bf *BleFsm) executeState() (bool, error) { } func (bf *BleFsm) startOnce() (bool, error) { - bf.errFunnel.Start() - if !bf.IsClosed() { - bf.errFunnel.Reset() return false, nmxutil.NewSesnAlreadyOpenError(fmt.Sprintf( "Attempt to open an already-open BLE session (state=%d)", bf.getState())) } + bf.errFunnel.Start() + for { retry, err := bf.executeState() if err != nil {
