小编Tim*_*teo的帖子

在Clojure中计算中止的事务

我想分析Clojure程序与C中锁定版本的行为.我想跟踪的一个指标是我的Clojure程序的中止事务总数.

唯一的问题是我不能在我所处的事务上下文之外变异变量.我想要做的是:

(dosync
(try
  (alter my_num inc)
  (catch Throwable t
    (do
      (alter total_aborts inc)
      (println "Caught " (.getClass t))
      (throw t)))))
Run Code Online (Sandbox Code Playgroud)

当然,如果交易没有完成,total_aborts永远不会增加!那我该怎么做呢?谢谢!

functional-programming transactions clojure

8
推荐指数
1
解决办法
127
查看次数

为什么在X86上使用单步执行指令?

所以有"int 3"这是一个用于调试器断点的中断指令.

但是还有"int 1"用于单步执行.但为什么需要呢?我已经读过,在EFLAGS寄存器中设置陷阱标志(TF)将启用单步执行,并将为每条指令捕获到操作系统.那么为什么需要单独的中断类型呢?

谢谢!

debugging x86 gdb

6
推荐指数
2
解决办法
5036
查看次数

在 OpenGL 中绘制带有颜色的多边形会导致纹理颜色发生变化

我正在开发一个模拟程序,该程序在一个大的 2D 矩形的顶部绘制点和其他图元,并在其上映射纹理。

问题是,当我绘制多边形并使用 glColor3f 为顶点指定颜色时,该颜色似乎会影响纹理的颜色,而不仅仅是我绘制的多边形。因此,绘制红色多边形似乎会“渗入”整个纹理,并且所有内容都呈红色。

我试图在绘制多边形之前使用 glDisable(GL_TEXTURE_2D) 来解决这个问题,然后再次启用。但这似乎没有任何影响。

opengl texture-mapping

1
推荐指数
1
解决办法
3534
查看次数