mirror of
https://github.com/apache/nuttx.git
synced 2026-05-28 11:56:10 +08:00
Revert "No need to call sched_lock explicitly after call spin_lock_irqsave, since it will be called in func spin_lock_irqsave."
This reverts commit 8f3a2a6f76.
This commit is contained in:
@@ -116,6 +116,7 @@ static int adjtime_start(long long adjust_usec)
|
|||||||
}
|
}
|
||||||
|
|
||||||
flags = spin_lock_irqsave(&g_adjtime_lock);
|
flags = spin_lock_irqsave(&g_adjtime_lock);
|
||||||
|
sched_lock();
|
||||||
|
|
||||||
/* Set new adjustment */
|
/* Set new adjustment */
|
||||||
|
|
||||||
@@ -142,6 +143,7 @@ static int adjtime_start(long long adjust_usec)
|
|||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_irqrestore(&g_adjtime_lock, flags);
|
spin_unlock_irqrestore(&g_adjtime_lock, flags);
|
||||||
|
sched_unlock();
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -840,6 +840,7 @@ void _assert(FAR const char *filename, int linenum,
|
|||||||
if (os_ready)
|
if (os_ready)
|
||||||
{
|
{
|
||||||
flags = spin_lock_irqsave(&g_assert_lock);
|
flags = spin_lock_irqsave(&g_assert_lock);
|
||||||
|
sched_lock();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG_BOARD_RESET_ON_ASSERT < 2
|
#if CONFIG_BOARD_RESET_ON_ASSERT < 2
|
||||||
@@ -913,5 +914,6 @@ void _assert(FAR const char *filename, int linenum,
|
|||||||
if (os_ready)
|
if (os_ready)
|
||||||
{
|
{
|
||||||
spin_unlock_irqrestore(&g_assert_lock, flags);
|
spin_unlock_irqrestore(&g_assert_lock, flags);
|
||||||
|
sched_unlock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <sched.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
@@ -360,6 +361,7 @@ void work_notifier_signal(enum work_evtype_e evtype,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
flags = spin_lock_irqsave(&g_notifier_lock);
|
flags = spin_lock_irqsave(&g_notifier_lock);
|
||||||
|
sched_lock();
|
||||||
|
|
||||||
/* Process the notification at the head of the pending list until the
|
/* Process the notification at the head of the pending list until the
|
||||||
* pending list is empty
|
* pending list is empty
|
||||||
@@ -403,6 +405,7 @@ void work_notifier_signal(enum work_evtype_e evtype,
|
|||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_irqrestore(&g_notifier_lock, flags);
|
spin_unlock_irqrestore(&g_notifier_lock, flags);
|
||||||
|
sched_unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_WQUEUE_NOTIFIER */
|
#endif /* CONFIG_WQUEUE_NOTIFIER */
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ static void work_timer_expiry(wdparm_t arg)
|
|||||||
FAR struct work_s *work = (FAR struct work_s *)arg;
|
FAR struct work_s *work = (FAR struct work_s *)arg;
|
||||||
|
|
||||||
irqstate_t flags = spin_lock_irqsave(&work->wq->lock);
|
irqstate_t flags = spin_lock_irqsave(&work->wq->lock);
|
||||||
|
sched_lock();
|
||||||
|
|
||||||
/* We have being canceled */
|
/* We have being canceled */
|
||||||
|
|
||||||
@@ -78,6 +79,7 @@ static void work_timer_expiry(wdparm_t arg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_irqrestore(&work->wq->lock, flags);
|
spin_unlock_irqrestore(&work->wq->lock, flags);
|
||||||
|
sched_unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool work_is_canceling(FAR struct kworker_s *kworkers, int nthreads,
|
static bool work_is_canceling(FAR struct kworker_s *kworkers, int nthreads,
|
||||||
@@ -182,8 +184,10 @@ int work_queue_wq(FAR struct kwork_wqueue_s *wqueue,
|
|||||||
|
|
||||||
if (!delay)
|
if (!delay)
|
||||||
{
|
{
|
||||||
|
sched_lock();
|
||||||
queue_work(wqueue, work);
|
queue_work(wqueue, work);
|
||||||
spin_unlock_irqrestore(&wqueue->lock, flags);
|
spin_unlock_irqrestore(&wqueue->lock, flags);
|
||||||
|
sched_unlock();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <sched.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -204,7 +205,9 @@ static int work_thread(int argc, FAR char *argv[])
|
|||||||
while (kworker->wait_count > 0)
|
while (kworker->wait_count > 0)
|
||||||
{
|
{
|
||||||
kworker->wait_count--;
|
kworker->wait_count--;
|
||||||
|
sched_lock();
|
||||||
nxsem_post(&kworker->wait);
|
nxsem_post(&kworker->wait);
|
||||||
|
sched_unlock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user