Clojure에서 내 STM의 롤백 수는 어떻게 볼 수 있습니까?Clojure에서 내 STM의 롤백 수는 어떻게 볼 수 있습니까?
13
A
답변
17
당신은 할 수 없습니다 ... 당신은 부정 행위를 기꺼이하지 않는 :
(defmacro spy-dosync [& body]
`(let [retries# (atom -1)
result# (dosync
(swap! retries# inc)
[email protected])]
(println "retries count:" @retries#)
result#))
을 다음 스파이 dosync하여 dosync를 교체하십시오.
5
기분이 좋으면 Clojure 소스를 해킹하여 다시 빌드 할 수 있습니다 (Clojure 소스를 다시 작성하려면 easy입니다). 트랜잭션 재 시도는 run() 메소드의 src/jvm/clojure/lang/LockingTransaction.java에서 발생합니다. 완료 될 때까지 또는 RETRY_LIMIT까지 반복되는 커다란 루프가 있습니다. 루프가 종료 될 때 i의 값은 재시도 횟수이어야합니다.
2
Chris Houser가 작성한 STM 스트레스 test이 유용 할 수 있습니다.
관련 문제
- 1. 어떻게 Clojure에서 예외를 throw 할 수 있습니까?
- 2. 어떻게 가상 환경을 롤백 할 수 있습니까?
- 3. 어떻게 트랜잭션을 롤백 할 수 있습니까?
- 4. 어떻게 장면을 볼 수 있습니까?
- 5. 오페라의 쿠키 수는 어떻게 확인할 수 있습니까?
- 6. SMS 앱에서 내 앱에서 보낸 메시지를 어떻게 볼 수 있습니까?
- 7. 누군가 내 rakefile 구문을 볼 수 있습니까?
- 8. 들어오는 요청을 IIS7에서 어떻게 볼 수 있습니까?
- 9. Rails 개발 로그를 어떻게 볼 수 있습니까?
- 10. git에서 들어오는 커밋을 어떻게 볼 수 있습니까?
- 11. jMeter에서 페이지 오류를 어떻게 볼 수 있습니까?
- 12. MySql Fulltext Indexes는 어떻게 볼 수 있습니까?
- 13. 로그인의 기본 데이터베이스는 어떻게 볼 수 있습니까?
- 14. 피들러에서 파일의 내용을 어떻게 볼 수 있습니까?
- 15. 어떻게 이클립스에서 gdb 추적을 볼 수 있습니까?
- 16. gdb에서 printf의 결과를 어떻게 볼 수 있습니까?
- 17. HSQLDB에서 테이블 구조를 어떻게 볼 수 있습니까?
- 18. Linqpad에서 경고를 어떻게 볼 수 있습니까?
- 19. Mono의 코드를 어떻게 볼 수 있습니까?
- 20. jQuery 오류는 어떻게 볼 수 있습니까?
- 21. Node.js 오류는 어떻게 볼 수 있습니까?
- 22. 프로젝트의 총 경고 수는 어떻게 찾을 수 있습니까?
- 23. Clojure에서 Zip은 어떻게 사용합니까?
- 24. Clojure에서 도스 동기화로 참조가 업데이트되고 있는지 어떻게 알 수 있습니까?
- 25. Clojure에서 지속적으로 실행되는 백그라운드 프로세스를 어떻게 만들 수 있습니까?
- 26. Clojure에서 defmethod에 대한 여러 인수를 어떻게 전달할 수 있습니까?
- 27. 어떻게 Mercurial에서 단일 변경 사항을 롤백 할 수 있습니까?
- 28. Clojure에서 Java 메소드를 재정의 할 수 있습니까?
- 29. 필요한 최소 버전이있는 경우 어떻게 clickOnce를 롤백 할 수 있습니까?
- 30. Spring Roo에서 어떻게 하나의 롤백 명령을 사용할 수 있습니까?