--[=[
	Disconnects all connections from a ScriptSignal object without making it unusable.

	```lua
	local connection = ScriptSignal:Connect(function() end)

	connection.Connected -> true
	ScriptSignal:DisconnectAll()
	connection.Connected -> false
	```

	@ignore
]=]

function ScriptSignal:DisconnectAll()
    local node: ScriptConnectionNode? = self._head
    while node ~= nil do
        local _connection = node._connection

        if _connection ~= nil then
            _connection.Connected = false
            _connection._node = nil
            node._connection = nil
        end

        node = node._next
    end

    self._head = nil
end
