mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-02-02 02:24:56 -05:00
debugd: keep mutex locked while receiving files (#1070)
This commit is contained in:
parent
a85ba96ac4
commit
8c57995468
@ -68,6 +68,8 @@ func (s *FileTransferer) SendFiles(stream SendFilesStream) error {
|
||||
|
||||
// RecvFiles receives files from the given stream.
|
||||
func (s *FileTransferer) RecvFiles(stream RecvFilesStream) (err error) {
|
||||
s.mux.Lock()
|
||||
defer s.mux.Unlock()
|
||||
if err := s.startRecv(); err != nil {
|
||||
return err
|
||||
}
|
||||
@ -170,8 +172,6 @@ func (s *FileTransferer) handleFileRecv(stream RecvFilesStream) (bool, error) {
|
||||
|
||||
// startRecv marks the file receive as started. It returns an error if receiving has already started.
|
||||
func (s *FileTransferer) startRecv() error {
|
||||
s.mux.Lock()
|
||||
defer s.mux.Unlock()
|
||||
switch {
|
||||
case s.receiveFinished:
|
||||
return ErrReceiveFinished
|
||||
@ -185,8 +185,6 @@ func (s *FileTransferer) startRecv() error {
|
||||
// abortRecv marks the file receive as failed.
|
||||
// This allows for a retry of the file receive.
|
||||
func (s *FileTransferer) abortRecv() {
|
||||
s.mux.Lock()
|
||||
defer s.mux.Unlock()
|
||||
s.receiveStarted = false
|
||||
s.files = nil
|
||||
}
|
||||
@ -194,16 +192,12 @@ func (s *FileTransferer) abortRecv() {
|
||||
// finishRecv marks the file receive as completed.
|
||||
// This allows other debugd instances to request files from this server.
|
||||
func (s *FileTransferer) finishRecv() {
|
||||
s.mux.Lock()
|
||||
defer s.mux.Unlock()
|
||||
s.receiveStarted = false
|
||||
s.receiveFinished = true
|
||||
}
|
||||
|
||||
// addFile adds a file to the list of received files.
|
||||
func (s *FileTransferer) addFile(file FileStat) {
|
||||
s.mux.Lock()
|
||||
defer s.mux.Unlock()
|
||||
s.files = append(s.files, file)
|
||||
}
|
||||
|
||||
|
@ -364,20 +364,15 @@ func TestConcurrency(t *testing.T) {
|
||||
}
|
||||
|
||||
type stubStreamReadWriter struct {
|
||||
readStreamFilename string
|
||||
readStreamErr error
|
||||
|
||||
writeStreamFilename string
|
||||
writeStreamErr error
|
||||
readStreamErr error
|
||||
writeStreamErr error
|
||||
}
|
||||
|
||||
func (s *stubStreamReadWriter) ReadStream(filename string, _ streamer.WriteChunkStream, _ uint, _ bool) error {
|
||||
s.readStreamFilename = filename
|
||||
return s.readStreamErr
|
||||
}
|
||||
|
||||
func (s *stubStreamReadWriter) WriteStream(filename string, _ streamer.ReadChunkStream, _ bool) error {
|
||||
s.writeStreamFilename = filename
|
||||
return s.writeStreamErr
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user