ChangbaDevs / KTVHTTPCache

A powerful media cache framework.
MIT License
2.35k stars 435 forks source link

在后台几分钟再回到前台会死锁 #135

Open karosLi opened 4 years ago

karosLi commented 4 years ago

我自己本地没有复现处理,bugly 上的日志在这里。不确定是什么情况下导致 HTTPServer 会被释放掉.

Thread 24 0 libdispatch.dylib _DISPATCH_WAIT_FOR_QUEUE + 448
1 libdispatch.dylib __dispatch_sync_f_slow + 140
2 libdispatch.dylib __dispatch_sync_f_slow + 140
3 App -[HTTPServer stop:] + 168
4 App -[HTTPServer dealloc] + 164
5 App ___destroy_helperblock.306 + 24
6 libsystem_blocks.dylib _Block_release + 152
7 libdispatch.dylib __dispatch_client_callout + 16
8 libdispatch.dylib __dispatch_lane_serial_drain$VARIANT$armv81 + 564
9 libdispatch.dylib __dispatch_lane_invoke$VARIANT$armv81 + 400
10 libdispatch.dylib __dispatch_workloop_worker_thread + 576
11 libsystem_pthread.dylib _pthread_wqthread + 276
karosLi commented 4 years ago

另外看到很多这样的写法,dispatch_sync(serverQueue, ^{ @autoreleasepool {}}); 目的是为了什么呢?同步执行会阻塞,当是主线程调用时,如果 serverQueue 有其他任务,主线程还会被阻塞住