Size: a a a

2020 September 04

AH

Ayrat Hudaygulov in F# Chat
Ulan Yeskendirov
всем привет, тут возник такой вопрос: можно ли использовать "mutable" в асинхронном коде? (просто где-то от кого-то слышал, что не стоит)
при параллельном доступе к мутабельной переменной возможны баги
источник

DB

Denis Bobrov in F# Chat
Google shared mutable state
источник

VS

Vasily Shapenko in F# Chat
Ayrat Hudaygulov
при параллельном доступе к мутабельной переменной возможны баги
Не возможно, а точно будут
источник

UY

Ulan Yeskendirov in F# Chat
Ayrat Hudaygulov
при параллельном доступе к мутабельной переменной возможны баги
ок
источник

AH

Ayrat Hudaygulov in F# Chat
банальное

let mutable i = 0

let foo() =
 i <- i + 1

// стартуем параллельно несколько тредов на foo()
источник

AH

Ayrat Hudaygulov in F# Chat
Ulan Yeskendirov
ок
асинхронный код != параллельный код
источник

S

Stanislav in F# Chat
Ayrat Hudaygulov
асинхронный код != параллельный код
помню, когда первый раз осознал эту истину был в шоке :)
источник

UY

Ulan Yeskendirov in F# Chat
ок
источник

VK

Vladislav Khapin in F# Chat
Ayrat Hudaygulov
банальное

let mutable i = 0

let foo() =
 i <- i + 1

// стартуем параллельно несколько тредов на foo()
не ну а шо, добавить локов вокруг та нормально
источник

UY

Ulan Yeskendirov in F# Chat
пойду почитаю)
источник

S

Stanislav in F# Chat
Vladislav Khapin
не ну а шо, добавить локов вокруг та нормально
семафоры!
источник

Г

Герман in F# Chat
Vladislav Khapin
не ну а шо, добавить локов вокруг та нормально
Обернуть в Mailbox
источник

S

Stanislav in F# Chat
Ulan Yeskendirov
пойду почитаю)
погугли про контекст синхронизации , это все оттуда
источник

UY

Ulan Yeskendirov in F# Chat
Stanislav
погугли про контекст синхронизации , это все оттуда
спс
источник

I

IdiocyAcceptance in F# Chat
Vladislav Khapin
не ну а шо, добавить локов вокруг та нормально
конкретно такие вещи через interlocked.increment делаются
источник

S

Stanislav in F# Chat
IdiocyAcceptance
конкретно такие вещи через interlocked.increment делаются
ну так там 4-5 вариантов на любой вкус)
источник

VK

Vladislav Khapin in F# Chat
Это была ирония если шо
источник

I

IdiocyAcceptance in F# Chat
:(
источник

AH

Ayrat Hudaygulov in F# Chat
IdiocyAcceptance
конкретно такие вещи через interlocked.increment делаются
let mutable i = 0
let mutable j = 0

let atomicIncrement() =
 i <- i+1
 j <- j+1

а если надо атомарно 2 записи сделать?
источник

Г

Герман in F# Chat
Ayrat Hudaygulov
let mutable i = 0
let mutable j = 0

let atomicIncrement() =
 i <- i+1
 j <- j+1

а если надо атомарно 2 записи сделать?
А атомарно 2 можно?
источник