Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rknnPool.hpp那里是不是缺个锁? #37

Open
Czhazha opened this issue Apr 9, 2024 · 8 comments
Open

rknnPool.hpp那里是不是缺个锁? #37

Czhazha opened this issue Apr 9, 2024 · 8 comments

Comments

@Czhazha
Copy link

Czhazha commented Apr 9, 2024

int rknnPool<rknnModel, inputType, outputType>::put(inputType inputData)
函数里面
push之前,是不是需要std::lock_guardstd::mutex lock(queueMtx);?
我是遇到了多线程会偶然崩溃的问题,然后加了之后运行就稳定了。

@leafqycc
Copy link
Owner

leafqycc commented Apr 9, 2024

int rknnPool<rknnModel, inputType, outputType>::put(inputType inputData) 函数里面 push之前,是不是需要std::lock_guardstd::mutex lock(queueMtx);? 我是遇到了多线程会偶然崩溃的问题,然后加了之后运行就稳定了。

谢谢,确实,之前按照单个视频流输入来设计的,但是queue是非线程安全的,多线程多输入会导致出问题()

leafqycc added a commit that referenced this issue Apr 9, 2024
@lsm140
Copy link

lsm140 commented May 30, 2024

我就说 难怪!我都怀疑是官方rga画图的问题了,我是双摄像头输入

int rknnPool<rknnModel, inputType, outputType>::put(inputType inputData) 函数里面 push之前,是不是需要std::lock_guardstd::mutex lock(queueMtx);? 我是遇到了多线程会偶然崩溃的问题,然后加了之后运行就稳定了。

谢谢,确实,之前按照单个视频流输入来设计的,但是queue是非线程安全的,多线程多输入会导致出问题()

std::lock_guardstd::mutex lock(queueMtx);那它这个还适用于双摄像头输入多线程的场景吗?会崩溃吗

@Czhazha
Copy link
Author

Czhazha commented May 30, 2024

我就说 难怪!我都怀疑是官方rga画图的问题了,我是双摄像头输入

int rknnPool<rknnModel, inputType, outputType>::put(inputType inputData) 函数里面 push之前,是不是需要std::lock_guardstd::mutex lock(queueMtx);? 我是遇到了多线程会偶然崩溃的问题,然后加了之后运行就稳定了。

谢谢,确实,之前按照单个视频流输入来设计的,但是queue是非线程安全的,多线程多输入会导致出问题()

std::lock_guardstd::mutex lock(queueMtx);那它这个还适用于双摄像头输入多线程的场景吗?会崩溃吗

改过后,我稳定跑多线程输入4路8路都正常了。

@lsm140
Copy link

lsm140 commented May 30, 2024

用于双摄像头输

可以加下联系方式吗,我刚在push前添加了这一行代码 好像还是有问题,不知道哪里的问题

@lsm140
Copy link

lsm140 commented May 30, 2024

我就说 难怪!我都怀疑是官方rga画图的问题了,我是双摄像头输入

int rknnPool<rknnModel, inputType, outputType>::put(inputType inputData) 函数里面 push之前,是不是需要std::lock_guardstd::mutex lock(queueMtx);? 我是遇到了多线程会偶然崩溃的问题,然后加了之后运行就稳定了。

谢谢,确实,之前按照单个视频流输入来设计的,但是queue是非线程安全的,多线程多输入会导致出问题()

std::lock_guardstd::mutex lock(queueMtx);那它这个还适用于双摄像头输入多线程的场景吗?会崩溃吗

改过后,我稳定跑多线程输入4路8路都正常了。

我的vx号,San_Lsm.我的情况是推理本地视频,画面弹出来,但是就卡住。实时读取摄像头则是core dumped

@lsm140
Copy link

lsm140 commented May 31, 2024

多线程多输入会导致出问题()

那该怎么改呢?我就是多线程多输入会导致出问题,线程数只能设置成1,不然跑不了

@wycrystal
Copy link

我就说 难怪!我都怀疑是官方rga画图的问题了,我是双摄像头输入

int rknnPool<rknnModel, inputType, outputType>::put(inputType inputData) 函数里面 push之前,是不是需要std::lock_guardstd::mutex lock(queueMtx);? 我是遇到了多线程会偶然崩溃的问题,然后加了之后运行就稳定了。

谢谢,确实,之前按照单个视频流输入来设计的,但是queue是非线程安全的,多线程多输入会导致出问题()

std::lock_guardstd::mutex lock(queueMtx);那它这个还适用于双摄像头输入多线程的场景吗?会崩溃吗

改过后,我稳定跑多线程输入4路8路都正常了。

请问修改哪里可以输入多路摄像头呀?

@wycrystal
Copy link

int rknnPool<rknnModel, inputType, outputType>::put(inputType inputData) 函数里面 push之前,是不是需要std::lock_guardstd::mutex lock(queueMtx);? 我是遇到了多线程会偶然崩溃的问题,然后加了之后运行就稳定了。

谢谢,确实,之前按照单个视频流输入来设计的,但是queue是非线程安全的,多线程多输入会导致出问题()

如果是单路摄像头、多线程,这里还需要加锁吗?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants