casatwy / CTNetworking

iOS networking API layer
Other
488 stars 105 forks source link

崩溃 #37

Open Vincentzzg opened 2 years ago

Vincentzzg commented 2 years ago

APP的网络请求用的这个库,后台有一些崩溃日志是这个库里面的崩溃,崩在这个位置:

截屏2022-01-26 下午2 07 50

怀疑是dispatchTable这个字典的访问没有加锁,多线程访问的情况下出现了崩溃

Vincentzzg commented 2 years ago

@casatwy 田大哥,这个库还在维护吗?这个问题的原因我找到了,在维护的话我提个PR

问题原因是: 多个 service 的情况下,每个 service 返回了自己的 AFHTTPSessionManager sessionManager,taskIdentifier 在多个 NSURLSession session 是不相关的,都会从1开始,同一个数字生成的 NSNumber地址又是一样的,CTApiProxy 单例里面的 dispatchTable 的key会出现重复导致的,极端情况下会崩溃 Xnip2022-06-15_16-57-46

shywoody commented 1 month ago

@casatwy 田大哥,这个库还在维护吗?这个问题的原因我找到了,在维护的话我提个PR

问题原因是: 多个 service 的情况下,每个 service 返回了自己的 AFHTTPSessionManager sessionManager,taskIdentifier 在多个 NSURLSession session 是不相关的,都会从1开始,同一个数字生成的 NSNumber地址又是一样的,CTApiProxy 单例里面的 dispatchTable 的key会出现重复导致的,极端情况下会崩溃 Xnip2022-06-15_16-57-46

你是怎么解决的呀