@shachaf@y.la avatar

shachaf

@shachaf@y.la

This profile is from a federated server and may be incomplete. Browse more on the original instance.

shachaf, to random EN
@shachaf@y.la avatar

An interesting concurrency operation that @tavianator mentioned is "acquire a lock and immediately release it". I've seen this in another context before.
I sort of wonder whether this is trying to be some other serialization operation, or what the simplest version of this is.

shachaf, to random
@shachaf@y.la avatar

If you find yourself acquiring a lock just because the condition variable API requires you to have a lock, and not using it anywhere else, you should probably reconsider what you're doing.

shachaf, to random EN
@shachaf@y.la avatar

When people advertise software as "written in X", I usually take that as a slightly negative signal (you don't have something more interesting than the language you used?). The main exception is Go, where it means there's a good chance they ship a simple static binary.

shachaf, to random EN
@shachaf@y.la avatar

I liked @ptrschmdtnlsn's explanation for what's going on with Fibonacci vs. Galois LFSRs: Say you want to compute Fibonacci numbers (or some other linear recurrence). You have an infinite array of mutable cells, F[i], zero-initialized except F[0] = F[1] = 1

shachaf, to random EN
@shachaf@y.la avatar

Apparently even asm(""); is treated as some sort of compiler barrier for clang, causing it to spill registers to memory.
https://godbolt.org/z/G3c778WqE

shachaf, to random EN
@shachaf@y.la avatar

Is there a good overview reference for concurrent memory reclamation -- potential issues (ABA, use-after-free), and approaches people use (GC, epochs, hazard pointers, RCU-style read locks, etc.) and tradeoffs between them?

shachaf, to random EN
@shachaf@y.la avatar

Part of an email I wrote last year. I still think there are a lot of interesting unexplored points in this space!

shachaf, to random EN
@shachaf@y.la avatar

In practice, is it reasonable to sometimes do an atomic exchange/store on 16 bits of a 32-bit value, and sometimes do CAS on the whole value? I assume it's not incorrect, but will the store buffer get mad at me and use some awful slow path? What about if the former case is rare?

shachaf, to random
@shachaf@y.la avatar

How to think of the trace of a linear map as connecting its output back to its own input https://math.stackexchange.com/q/2762669

shachaf, to random
@shachaf@y.la avatar

I didn't realize Fib_(n+m) = Fib_(n-1) Fib_(m-1) + Fib_n Fib_m. That's a nice property of linear recurrences!

shachaf, to random
@shachaf@y.la avatar

Is there a way to convince clang/LLVM to do 16-byte atomic loads with SSE instead of lock cmpxchg16b?

  • All
  • Subscribed
  • Moderated
  • Favorites
  • Leos
  • ngwrru68w68
  • hgfsjryuu7
  • InstantRegret
  • Youngstown
  • rosin
  • slotface
  • everett
  • mdbf
  • tacticalgear
  • kavyap
  • thenastyranch
  • DreamBathrooms
  • PowerRangers
  • anitta
  • magazineikmin
  • vwfavf
  • cisconetworking
  • cubers
  • modclub
  • GTA5RPClips
  • khanakhh
  • Durango
  • osvaldo12
  • normalnudes
  • tester
  • ethstaker
  • provamag3
  • All magazines