Comments (8)
Side note: If possible, bring back the CLI as well. Not having it breaks the device provisioning flow we had.
Issue #20 open on this one.
from mdash.
I can confirm the same problem is happening to me on mDash v1.2.16 and Platformio ESP32 core 6.3.1 (latest).
Opened a ticket about it:
#21
The loop() task indeed stops when mDash functions are called. I'm having random issues even with mDashConfigGet.
Side note: If possible, bring back the CLI as well. Not having it breaks the device provisioning flow we had.
from mdash.
Gents, the code is wide open.
Sends your PRs.
from mdash.
I've temporarily commented lines 104 and 107 (xSemaphoreTakeRecursive and xSemaphoreGiveRecursive) for testing and mDash works perfectly (for as long as you don't call any mDash function while another is still running 😀).
So, this is definetely an Mutex-related issue.
But, I could not find anything wrong with the implementation in mDash.c itself. The calls for taking and giving the semaphore are properly placed and there should be no holdup...
from mdash.
I have solved the issue, plz check the PR. #24
from mdash.
You just added a duplicate of notify without the locks - that's not a proper fix.
I guess that the core of the issue is here:
Lines 736 to 740 in 8bd6647
All functions that may be called by the mDashPoll(), for example mDashShadowUpdate(), will deadlock.
So I guess that the proper fix would be to just remove the locks from mDashShadowUpdate() and document that the mutex locks must be called manually before and after, in case the function is called outside the mdash thread.
from mdash.
You just added a duplicate of notify without the locks - that's not a proper fix.
I guess that the core of the issue is here:
Lines 736 to 740 in 8bd6647
All functions that may be called by the mDashPoll(), for example mDashShadowUpdate(), will deadlock. So I guess that the proper fix would be to just remove the locks from mDashShadowUpdate() and document that the mutex locks must be called manually before and after, in case the function is called outside the mdash thread.
Thankq @cpq for your suggestion, So you meant to directly remove the MutexLocks from the mDashNotify() as well as mDashPoll() functions?
from mdash.
@Thermelgy-Repo from the mDashNotify only.
It would be a user responsibility to surround the mDashNotify call with locks manually if it gets called from the outside of Mongoose task.
from mdash.
Related Issues (20)
- mDashSetServer not defined HOT 1
- Documentation on mdash.net is wrong at mDashSetLogLevel() HOT 1
- event.c:18:mg_error 0x36 DNS timeout HOT 2
- Local device clock drift + offset induced by mDash HOT 1
- Failed to compile (collect issue) with latest ESP32 core (undefined reference to `mDashInit') HOT 1
- Getting error while compiling after updating to platform-espressif32 V4.1.0 HOT 3
- Release Source Code
- version 1.2.15 setting the device clock to wildly incorrect values HOT 6
- Incomplete filenames in mDash for release 1.2.15 HOT 5
- Restore CLI access
- Core 1 arduino task hangs after calling any mDash function HOT 1
- Compilation Error HOT 1
- Implementation with SIM800 HOT 1
- Reboot Loop on Incorrect Password
- Not able to connect Mdash on ESP32 with Ethernet W5500
- esp-idf v4 not supported HOT 1
- Are source files available to build libmdash.a? HOT 1
- Compilation Error : undefined reference to `mDashInit' HOT 4
- ESP8266 compatibility with mDash HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mdash.