Skip to content

PLSE-Lab/Go-Concurrency

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Running the Analyzer

The analyzer can be run on either individual files or on an entire directory. To run it on an individual file, you should use the --filePath command line argument. For instance:

go run ast-search.go --filePath sample/goroutines/mem-benchmark.go --output results.csv

To run the analyzer on a directory containing .go files, you should use the --dirPath command line argument. For instance:

go run ast-search.go --dirPath sample --output results.csv

Results of the analysis will be stored in the CSV file given using the --output command line argument.

The file itself contains the following information:

Column Description
fileName The absolute path of the analyzed file
waitGroupDecls The # of WaitGroup declarations
condDecls The # of Condition variable declarations
onceDecls The # of Once declarations
mutexDecls The # of Mutex declarations
rwMutexDecls The # of RWMutex declarations
lockerDecls The # of Locker declarations
waitGroupDone The # of calls to Done on a WaitGroup
waitGroupAdd The # of calls to Add on a WaitGroup
waitGroupWait The # of calls to Wait on a WaitGroup
mutexLock The # of calls to Lock on a Mutex
mutexUnlock The # of calls to Unlock on a Mutex
rwMutexLock The # of calls to Lock on a RWMutex
rwMutexUnlock The # of calls to Unlock on a RWMutex
lockerLock The # of calls to Lock on a Locker
lockerUnlock The # of calls to Unlock on a Locker
condLock The # of calls to Lock on a Locker held by a Condition variable
condUnlock The # of calls to Unlock on a Locker held by a Condition variable
condWait The # of calls to Wait on a Condition variable
condSignal The # of calls to Signal on a Condition variable
condBroadcast The # of calls to Broadcast on a Condition variable
condNew The # of calls to NewCond
onceDo The # of calls to Do on a Once
unknownDone The # of uncategorized calls to Done
unknownAdd The # of uncategorized calls to Add
unknownWait The # of uncategorized calls to Wait
unknownLock The # of uncategorized calls to Lock
unknownUnlock The # of uncategorized calls to Unlock
unknownSignal The # of uncategorized calls to Signal
unknownBroadcast The # of uncategorized calls to Broadcast
unknownDo The # of uncategorized calls to Do

Note that calls categorized as "unknown" may be completely unrelated to concurrency. For instance, a function named Do, called on a custom type, would be categorized as "unknownDo", as would a call on a Once value if the analysis cannot determine a Once value is the target.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages