如何检查非线程安全代码?

时间:2013-10-12 14:42:14

标签: ruby ruby-on-rails-3 multithreading rubygems thread-safety

我正在使用 Rails 3.2 Ruby 1.9.3 。我想在config.threadsafe!中使用{strong> puma服务器production env一起使用,但在使用threadsafe之前我想确保我的申请不会打破。如何检查代码库中是否存在非线程安全的代码?

2 个答案:

答案 0 :(得分:1)

不,没有。如果有的话会很棒的。抱歉。 :(

答案 1 :(得分:1)

没有自动的方法来做到这一点。我会为访问共享资源的每个代码块编写一个spec / test - 全局变量和应该使用独占锁修改的资源。

如果您发现自己怀疑代码太多,那么有两个选项:

  1. 你做错了什么并没有充分的理由导致并发。尽快重构!
  2. 您在测试中明确指出要测试的代码是为并发而设计和测试的。
  3. 这是双赢的。