文档首页/ LiteOS/ 内核/ 自旋锁/ 注意事项
更新时间:2021-07-08 GMT+08:00
分享

注意事项

  • 同一个任务不能对同一把自旋锁进行多次加锁,否则会导致死锁。
  • 自旋锁中会执行本核的锁任务操作,因此需要等到最外层完成解锁后本核才会进行任务调度。
  • LOS_SpinLock与LOS_SpinUnlock允许单独使用,即可以不进行关中断,但是用户需要保证使用的接口只会在任务或中断中使用。如果接口同时会在任务和中断中被调用,请使用LOS_SpinLockSave与LOS_SpinUnlockRestore,因为在未关中断的情况下使用LOS_SpinLock可能会导致死锁。
  • 耗时的操作谨慎选用自旋锁,可使用互斥锁进行保护。
  • 未开启SMP的单核场景下,自旋锁功能无效,只有LOS_SpinLockSave与LOS_SpinUnlockRestore接口有关闭恢复中断功能。
  • 建议LOS_SpinLock和LOS_SpinUnlock,LOS_SpinLockSave和LOS_SpinUnlockRestore配对使用,避免出错。

相关文档