wip: currently rewriting the project as a full stack application tangled.org/kacaii.dev/sigo
gleam
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

:thread: spawn a new process when broadcasting messages

Kacaii 1eb05773 f63b60c1

+13 -4
+3 -1
src/app/domain/brigade.gleam
··· 2 2 import app/domain/user 3 3 import app/web/context.{type Context} 4 4 import app/web/socket/message as msg 5 + import gleam/erlang/process 5 6 import gleam/list 6 7 import gleam/result 7 8 import group_registry ··· 16 17 message message: msg.Msg, 17 18 ) -> Result(Nil, pog.QueryError) { 18 19 use returned <- result.map(sql.query_members_id(ctx.db, brigade_id)) 20 + 19 21 use row <- list.each(returned.rows) 20 - 22 + use <- process.spawn 21 23 user.broadcast(registry, row.id, message) 22 24 }
+3 -1
src/app/domain/occurrence.gleam
··· 18 18 message message: msg.Msg, 19 19 ) -> Result(Nil, pog.QueryError) { 20 20 use returned <- result.map(sql.query_participants(ctx.db, occ_id)) 21 + 21 22 use row <- list.each(returned.rows) 22 - 23 + use <- process.spawn 23 24 user.broadcast(registry, row.user_id, message) 24 25 } 25 26 ··· 33 34 let members = group_registry.members(registry, topic) 34 35 35 36 use subject <- list.each(members) 37 + use <- process.spawn 36 38 process.send(subject, msg.Domain(msg.OccurrenceCreated(id:, category:))) 37 39 }
+3 -1
src/app/domain/user.gleam
··· 49 49 let topic = "user:" <> uuid.to_string(user_id) 50 50 let members = group_registry.members(registry, topic) 51 51 52 - list.each(members, process.send(_, message)) 52 + use member <- list.each(members) 53 + use <- process.spawn 54 + process.send(member, message) 53 55 } 54 56 55 57 ///  Query the database to find the user's role name
+4 -1
src/app/web/socket.gleam
··· 392 392 message message: msg.Msg, 393 393 ) -> Nil { 394 394 let members = group_registry.members(registry, ws_topic) 395 - members |> list.each(process.send(_, message)) 395 + 396 + use member <- list.each(members) 397 + use <- process.spawn 398 + process.send(member, message) 396 399 } 397 400 398 401 fn send_response(